Upgrade to Pro — share decks privately, control downloads, hide ads and more …

New in v19 R Releases Part 2

New in v19 R Releases Part 2

4D Japan

March 27, 2023
Tweet

More Decks by 4D Japan

Other Decks in Technology

Transcript

  1. W E B I N A R
    W E E K 2
    4D v19
    R Release

    View Slide

  2. 4D


    ϥϯήʔδ

    View Slide

  3. ίϯϙʔωϯτͷΫϥεΛ


    ϗετ͔Β࢖༻

    View Slide

  4. 4Dϥϯήʔδ -
    ίϯϙʔωϯτͷΫϥεΛϗετ͔Β࢖༻
    ϓϩδΣΫτϞʔυ
    όΠφϦʔσʔλϕʔε
    👍
    利⽤不可
    💧
    cs.myClass.new()

    View Slide

  5. 4Dϥϯήʔδ -
    ίϯϙʔωϯτͷΫϥεΛϗετ͔Β࢖༻
    binary
    host
    project
    components
    cs.myClass.new()
    👍

    View Slide

  6. 4Dϥϯήʔδ -
    ίϯϙʔωϯτͷΫϥεΛϗετ͔Β࢖༻
    cs.myComponents.myClass.new()
    බࣈ ໊લ
    No Conflict! ໊લۭؒ

    View Slide

  7. 4Dϥϯήʔδ -
    ίϯϙʔωϯτͷΫϥεΛϗετ͔Β࢖༻

    View Slide

  8. ϧʔϓɺධՁɺ


    ͦͯ͠ෳ߹୅ೖԋࢉࢠ

    View Slide

  9. 4Dϥϯήʔδ -
    ϧʔϓɺධՁɺͦͯ͠ෳ߹୅ೖԋࢉࢠ
    return
    continue
    break
    ϝιουͷ࣮ߦΛதࢭ͠ɺ
    ݺͼग़͠ݩͷϝιου΁ͱ੍ޚΛ໭͢
    ࣮ߦதͷϧʔϓΛதࢭ͠ɺ
    ϧʔϓ௚ޙͷίʔυ΁ͱ࣮ߦΛਐΊΔ
    ࣮ߦதͷϧʔϓͷݱࡏͷճ͚ͩΛதࢭ͠ɺ
    ࣍ͷճͷϧʔϓ͔ΒίʔυΛ࠶։͢Δ

    View Slide

  10. 4Dϥϯήʔδ -
    ϧʔϓɺධՁɺͦͯ͠ෳ߹୅ೖԋࢉࢠ
    If ($value=1) & ($condition="good")
    If ($value=3) | ($condition="best")
    AND
    OR

    View Slide

  11. 4Dϥϯήʔδ -
    ϧʔϓɺධՁɺͦͯ͠ෳ߹୅ೖԋࢉࢠ
    If ($value=1) & ($condition="good")
    AND
    $value=3
    False
    👀

    View Slide

  12. 4Dϥϯήʔδ -
    ϧʔϓɺධՁɺͦͯ͠ෳ߹୅ೖԋࢉࢠ
    && ||
    必ずしも全ての


    オペランドを評価しない 式の値を返す



    チ 新敵地
    True/Falseじゃないの?
    シンテキチ?


    義的⾎?何それ?
    全てを評価しないって


    どういうこと?

    View Slide

  13. 4Dϥϯήʔδ -
    ϧʔϓɺධՁɺͦͯ͠ෳ߹୅ೖԋࢉࢠ
    falsy(ِత஋) truthy(ਅత஋)
    False
    Null
    Undefined
    “”(ۭͷจࣈྻ)
    [](ۭͷίϨΫγϣϯ)
    {}(ۭͷΦϒδΣΫτ)
    NullΦϒδΣΫτ΄͔
    ͦΕҎ֎ͷ஋
    ਺஋ͷ0΋ؚΉ
    !00-00-00!(ۭͷ೔෇) ?00:00:00?͸ؚΉ

    View Slide

  14. 4Dϥϯήʔδ -
    ϧʔϓɺධՁɺͦͯ͠ෳ߹୅ೖԋࢉࢠ
    &&
    ||
    $result1:="Hello" && True && New object
    $result2:=False || 0 || Null
    AND
    OR

    View Slide

  15. 4Dϥϯήʔδ -
    ϧʔϓɺධՁɺͦͯ͠ෳ߹୅ೖԋࢉࢠ
    If ($entity#Null) //NullͰͳ͍͔νΣοΫ


    If ($entity.value>10)


    //ΤϯςΟςΟʹରͯ͠ॲཧΛ͢Δ


    End if


    End if

    View Slide

  16. If (($entity#Null) && ($entity.value>10))
    4Dϥϯήʔδ -
    ϧʔϓɺධՁɺͦͯ͠ෳ߹୅ೖԋࢉࢠ
    ΤϯςΟςΟ͕NullͳΒ͜͜͸
    νΣοΫ͕͞Εͳ͍ͷͰΤϥʔ͕ى͖ͳ͍
    γϯϓϧʂ

    View Slide

  17. 4Dϥϯήʔδ -
    ϧʔϓɺධՁɺͦͯ͠ෳ߹୅ೖԋࢉࢠ
    var $phone : Text


    If ($employee.phone#Null)


    $phone:=$employee.phone


    Else


    $phone:="൪߸ͳ͠"


    End if

    View Slide

  18. 4Dϥϯήʔδ -
    ϧʔϓɺධՁɺͦͯ͠ෳ߹୅ೖԋࢉࢠ
    var $phone : Text


    $phone:=$employee.phone || "൪߸ͳ͠"
    👍

    View Slide

  19. Null
    4Dϥϯήʔδ -
    ϧʔϓɺධՁɺͦͯ͠ෳ߹୅ೖԋࢉࢠ
    var $phone : Text


    $phone:=$employee.phone || "൪߸ͳ͠"

    View Slide

  20. 4Dϥϯήʔδ -
    ϧʔϓɺධՁɺͦͯ͠ෳ߹୅ೖԋࢉࢠ
    var $phone : Text


    $phone:=$employee.phone || "൪߸ͳ͠"
    γϯϓϧʂ
    “࢖͑Δ஋”͔Ͳ͏͔
    =“࢖༻ੑ”Λݟ͍ͯΔ

    View Slide

  21. falsyͷͱ͖ͷ஋
    4Dϥϯήʔδ -
    ϧʔϓɺධՁɺͦͯ͠ෳ߹୅ೖԋࢉࢠ
    ࡾ߲ԋࢉࢠ
    ৚݅ ? truthyͷͱ͖ͷ஋ :
    $category:=($person.age>12) ? "େਓ" : "খਓ"


    //$personΤϯςΟςΟͷage͕12Λ௒͍͑ͯΔ͔Ͳ͏͔Ͱ۠෼͕มΘΔ

    View Slide

  22. 4Dϥϯήʔδ -
    ϧʔϓɺධՁɺͦͯ͠ෳ߹୅ೖԋࢉࢠ
    $num:=$num+1
    ෳ߹୅ೖԋࢉࢠ

    View Slide

  23. 4Dϥϯήʔδ -
    ϧʔϓɺධՁɺͦͯ͠ෳ߹୅ೖԋࢉࢠ
    $num+=1
    $num-=4 $num*=3 $num/=2

    View Slide

  24. 4Dϥϯήʔδ -
    ϧʔϓɺධՁɺͦͯ͠ෳ߹୅ೖԋࢉࢠ
    $text:="Hello"


    $text+=" World!"


    //$textʹ͸"Hello World!"͕ೖΔ
    $date:=Current date


    $date+=3


    //$dateʹ͸3೔ޙͷ೔෇͕ೖΔ
    $time:=Current time


    $time+=?01:00:00?


    //$timeʹ͸1࣌ؒޙͷ࣌ࠁ͕ೖΔ
    $time:=Current time


    $time-=100


    //$timeʹ͸100ඵલͷ࣌ࠁ͕ೖΔ

    View Slide

  25. 4Dϥϯήʔδ -
    ϧʔϓɺධՁɺͦͯ͠ෳ߹୅ೖԋࢉࢠ
    •return/break/continueʹΑΓແବͳίʔυΛݮΒ͢
    •truthy/falsy͓Αͼ&&/||ʹΑͬͯγϯϓϧͳධՁΛՄೳʹ
    •γϯϓϧͳIf…Else͸ࡾ߲ԋࢉࢠʹஔ͖׵͑Մೳ
    •ෳ߹୅ೖԋࢉࢠͰ௚ײతʹՃݮ৐আ

    View Slide

  26. Blobͱ4D.Blob


    ʙ৽࣌୅΁ʙ

    View Slide

  27. 4Dϥϯήʔδ -
    Blobͱ4D.Blob
    Blob 4D.Blob
    มߋՄೳ͔Ͳ͏͔ มߋՄೳ มߋෆՄ
    όΠτʹΞΫηε͢ΔࡍͷύϑΥʔϚϯε ྑ͍ ѱ͍
    ࠷େαΠζ 2 GB ϝϞϦ
    ϝιουͳͲʹࢀরͱͯ͠౉͠ ෆՄ Մೳ
    ΦϒδΣΫτ΍ίϨΫγϣϯͰڞ༗Մೳ ෆՄ Մೳʂ

    View Slide

  28. 4Dϥϯήʔδ -
    Blobͱ4D.Blob
    Blob 4D.Blob
    มߋՄೳ͔Ͳ͏͔ มߋՄೳ มߋෆՄ
    όΠτʹΞΫηε͢ΔࡍͷύϑΥʔϚϯε ྑ͍ ѱ͍
    ࠷େαΠζ 2 GB ϝϞϦ
    ϝιουͳͲʹࢀরͱͯ͠౉͠ ෆՄ Մೳ
    ΦϒδΣΫτ΍ίϨΫγϣϯͰڞ༗Մೳ ෆՄ Մೳʂ
    ΦϒδΣΫτʹ
    BlobΛؚΊΔ͜ͱ͕Ͱ͖Δʂ

    View Slide

  29. 4Dϥϯήʔδ -
    Blobͱ4D.Blob
    DELETE FROM BLOB


    INSERT IN BLOB


    INTEGER TO BLOB


    LONGINT TO BLOB


    LIST TO BLOB


    REAL TO BLOB
    SET BLOB SIZE


    SOAP DECLARATION


    TEXT TO BLOB


    VARIABLE TO BLOB


    WEB SERVICE SET PARAMETER
    4D.BlobΛαϙʔτ͠ͳ͍ίϚϯυ

    View Slide

  30. Ⴀ໨ͤΑɺେ͖ͳ੔਺


    ʙLongͷนΛ௒͑ͯʙ

    View Slide

  31. 4Dϥϯήʔδ -
    Ⴀ໨ͤΑɺେ͖ͳ੔਺
    C_LONGINT($vLong) var $vlong : Integer
    32 bit
    ± ਺஋
    2 ^ 31 -1
    -(2 ^ 31) +1

    View Slide

  32. 4Dϥϯήʔδ -
    Ⴀ໨ͤΑɺେ͖ͳ੔਺
    C_LONGINT($vLong) var $vlong : Integer
    32 bit
    ± ਺஋
    -2147483647 2147483647

    View Slide

  33. 4Dϥϯήʔδ -
    Ⴀ໨ͤΑɺେ͖ͳ੔਺
    C_REAL($real) var $real : Real

    View Slide

  34. 4Dϥϯήʔδ -
    Ⴀ໨ͤΑɺେ͖ͳ੔਺
    C_REAL($real) var $real : Real

    View Slide

  35. 2 ^ 53 -1
    -(2 ^ 53) +1
    4Dϥϯήʔδ -
    Ⴀ໨ͤΑɺେ͖ͳ੔਺
    C_REAL($real) var $real : Real
    64 bit
    ੔਺

    View Slide

  36. -9,007,199,254,740,991 9,007,199,254,740,991
    4Dϥϯήʔδ -
    Ⴀ໨ͤΑɺେ͖ͳ੔਺
    C_REAL($real) var $real : Real
    64 bit
    ~
    ੔਺

    View Slide

  37. -9,007,199,254,740,991 9,007,199,254,740,991
    4Dϥϯήʔδ -
    Ⴀ໨ͤΑɺେ͖ͳ੔਺
    C_REAL($real) var $real : Real
    64 bit
    ~
    ੔਺

    View Slide

  38. 4Dϥϯήʔδ -
    Ⴀ໨ͤΑɺେ͖ͳ੔਺
    •৽͍͠σʔλλΠϓ͕௥Ճ͞Εͨ༁Ͱ͸ͳ͍
    •C_LONGINTɺC_REALͷ࣮૷͸Կ΋มΘ͍ͬͯͳ͍
    •খ਺Λ࢖༻͍ͯ͠ͳ͍੔਺ʹݶΓѻ͍΍͘͢ͳͬͨ
    •ʮ16ܻҎ಺ʯͰ͸ͳ͘஋Λ௒͑ͳ͍͜ͱ
    64 bitܕ੔਺ͷओΩʔΛ࣋ͭ֎෦DBͱͷ࿈ܞ 👍

    View Slide

  39. 4Dϥϯήʔδ -
    ͦͷଞͷ৽ػೳ
    ϑΥʔϛϡϥΛίϨΫγϣϯ΍ίʔϧόοΫίϚϯυͰ࢖༻
    LZMA: ৽͍͠ѹॖΞϧΰϦζϜ
    ౉͞Ε͍ͯͳ͍Ҿ਺ʹ΋ΞΫηε͢Δ

    View Slide

  40. Thank you!

    View Slide