Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
New in v19 R Releases Part 2
Search
4D Japan
March 27, 2023
Technology
0
170
New in v19 R Releases Part 2
4D Japan
March 27, 2023
Tweet
Share
More Decks by 4D Japan
See All by 4D Japan
4D 20 R9
miyako
0
10
4D 20 R7 & R8
miyako
0
50
Unicodeの話 (2007)
miyako
0
19
Unicodeの話 (2008)
miyako
0
28
Google Apps Integration (2012)
miyako
0
27
Creating Custom Widgets (2012)
miyako
0
28
マルチスレッディングの仕組み (2016)
miyako
0
36
地図データの活用 (2016)
miyako
0
32
オブジェクトフィールド (2016)
miyako
0
17
Other Decks in Technology
See All in Technology
Kubernetes における cgroup v2 でのOut-Of-Memory 問題の解決
pfn
PRO
0
320
7月のガバクラ利用料が高かったので調べてみた
techniczna
3
750
見てわかるテスト駆動開発
recruitengineers
PRO
6
2.1k
実践アプリケーション設計 ②トランザクションスクリプトへの対応
recruitengineers
PRO
4
1.1k
JuniorからSeniorまで: DevOpsエンジニアの成長ロードマップ
yuriemori
2
320
帳票Vibe Coding
terurou
0
150
認知戦の理解と、市民としての対抗策
hogehuga
0
410
AIエージェントの活用に重要な「MCP (Model Context Protocol)」とは何か
masayamoriofficial
0
210
DuckDB-Wasmを使って ブラウザ上でRDBMSを動かす
hacusk
1
130
Grafana MCPサーバーによるAIエージェント経由でのGrafanaダッシュボード動的生成
hamadakoji
0
240
JavaScript 研修
recruitengineers
PRO
5
1.2k
RAID6 を楔形文字で組んで現代人を怖がらせましょう(実装編)
mimifuwa
1
330
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
358
30k
A designer walks into a library…
pauljervisheath
207
24k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Rails Girls Zürich Keynote
gr2m
95
14k
How to Ace a Technical Interview
jacobian
279
23k
Done Done
chrislema
185
16k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
11
1k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1.1k
Facilitating Awesome Meetings
lara
55
6.5k
Visualization
eitanlees
147
16k
Faster Mobile Websites
deanohume
309
31k
Statistics for Hackers
jakevdp
799
220k
Transcript
W E B I N A R W E E
K 2 4D v19 R Release
4D ϥϯήʔδ
ίϯϙʔωϯτͷΫϥεΛ ϗετ͔Β༻
4Dϥϯήʔδ - ίϯϙʔωϯτͷΫϥεΛϗετ͔Β༻ ϓϩδΣΫτϞʔυ όΠφϦʔσʔλϕʔε 👍 利⽤不可 💧 cs.myClass.new()
4Dϥϯήʔδ - ίϯϙʔωϯτͷΫϥεΛϗετ͔Β༻ binary host project components cs.myClass.new() 👍
4Dϥϯήʔδ - ίϯϙʔωϯτͷΫϥεΛϗετ͔Β༻ cs.myComponents.myClass.new() බࣈ ໊લ No Conflict! ໊લۭؒ
4Dϥϯήʔδ - ίϯϙʔωϯτͷΫϥεΛϗετ͔Β༻
ϧʔϓɺධՁɺ ͦͯ͠ෳ߹ೖԋࢉࢠ
4Dϥϯήʔδ - ϧʔϓɺධՁɺͦͯ͠ෳ߹ೖԋࢉࢠ return continue break ϝιουͷ࣮ߦΛதࢭ͠ɺ ݺͼग़͠ݩͷϝιουͱ੍ޚΛ͢ ࣮ߦதͷϧʔϓΛதࢭ͠ɺ ϧʔϓޙͷίʔυͱ࣮ߦΛਐΊΔ
࣮ߦதͷϧʔϓͷݱࡏͷճ͚ͩΛதࢭ͠ɺ ࣍ͷճͷϧʔϓ͔ΒίʔυΛ࠶։͢Δ
4Dϥϯήʔδ - ϧʔϓɺධՁɺͦͯ͠ෳ߹ೖԋࢉࢠ If ($value=1) & ($condition="good") If ($value=3) |
($condition="best") AND OR
4Dϥϯήʔδ - ϧʔϓɺධՁɺͦͯ͠ෳ߹ೖԋࢉࢠ If ($value=1) & ($condition="good") AND $value=3 False
👀
4Dϥϯήʔδ - ϧʔϓɺධՁɺͦͯ͠ෳ߹ೖԋࢉࢠ && || 必ずしも全ての オペランドを評価しない 式の値を返す ギ テ
キ チ 新敵地 True/Falseじゃないの? シンテキチ? 義的⾎?何それ? 全てを評価しないって どういうこと?
4Dϥϯήʔδ - ϧʔϓɺධՁɺͦͯ͠ෳ߹ೖԋࢉࢠ falsy(ِత) truthy(ਅత) False Null Undefined “”(ۭͷจࣈྻ) [](ۭͷίϨΫγϣϯ)
{}(ۭͷΦϒδΣΫτ) NullΦϒδΣΫτ΄͔ ͦΕҎ֎ͷ ͷ0ؚΉ !00-00-00!(ۭͷ) ?00:00:00?ؚΉ
4Dϥϯήʔδ - ϧʔϓɺධՁɺͦͯ͠ෳ߹ೖԋࢉࢠ && || $result1:="Hello" && True && New
object $result2:=False || 0 || Null AND OR
4Dϥϯήʔδ - ϧʔϓɺධՁɺͦͯ͠ෳ߹ೖԋࢉࢠ If ($entity#Null) //NullͰͳ͍͔νΣοΫ If ($entity.value>10) //ΤϯςΟςΟʹରͯ͠ॲཧΛ͢Δ End
if End if
If (($entity#Null) && ($entity.value>10)) 4Dϥϯήʔδ - ϧʔϓɺධՁɺͦͯ͠ෳ߹ೖԋࢉࢠ ΤϯςΟςΟ͕NullͳΒ͜͜ νΣοΫ͕͞Εͳ͍ͷͰΤϥʔ͕ى͖ͳ͍ γϯϓϧʂ
4Dϥϯήʔδ - ϧʔϓɺධՁɺͦͯ͠ෳ߹ೖԋࢉࢠ var $phone : Text If ($employee.phone#Null) $phone:=$employee.phone
Else $phone:="൪߸ͳ͠" End if
4Dϥϯήʔδ - ϧʔϓɺධՁɺͦͯ͠ෳ߹ೖԋࢉࢠ var $phone : Text $phone:=$employee.phone || "൪߸ͳ͠"
👍
Null 4Dϥϯήʔδ - ϧʔϓɺධՁɺͦͯ͠ෳ߹ೖԋࢉࢠ var $phone : Text $phone:=$employee.phone ||
"൪߸ͳ͠"
4Dϥϯήʔδ - ϧʔϓɺධՁɺͦͯ͠ෳ߹ೖԋࢉࢠ var $phone : Text $phone:=$employee.phone || "൪߸ͳ͠"
γϯϓϧʂ “͑Δ”͔Ͳ͏͔ =“༻ੑ”Λݟ͍ͯΔ
falsyͷͱ͖ͷ 4Dϥϯήʔδ - ϧʔϓɺධՁɺͦͯ͠ෳ߹ೖԋࢉࢠ ࡾ߲ԋࢉࢠ ݅ ? truthyͷͱ͖ͷ : $category:=($person.age>12)
? "େਓ" : "খਓ" //$personΤϯςΟςΟͷage͕12Λ͍͑ͯΔ͔Ͳ͏͔Ͱ͕۠มΘΔ
4Dϥϯήʔδ - ϧʔϓɺධՁɺͦͯ͠ෳ߹ೖԋࢉࢠ $num:=$num+1 ෳ߹ೖԋࢉࢠ
4Dϥϯήʔδ - ϧʔϓɺධՁɺͦͯ͠ෳ߹ೖԋࢉࢠ $num+=1 $num-=4 $num*=3 $num/=2
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ඵલͷ࣌ࠁ͕ೖΔ
4Dϥϯήʔδ - ϧʔϓɺධՁɺͦͯ͠ෳ߹ೖԋࢉࢠ •return/break/continueʹΑΓແବͳίʔυΛݮΒ͢ •truthy/falsy͓Αͼ&&/||ʹΑͬͯγϯϓϧͳධՁΛՄೳʹ •γϯϓϧͳIf…Elseࡾ߲ԋࢉࢠʹஔ͖͑Մೳ •ෳ߹ೖԋࢉࢠͰײతʹՃݮআ
Blobͱ4D.Blob ʙ৽࣌ʙ
4Dϥϯήʔδ - Blobͱ4D.Blob Blob 4D.Blob มߋՄೳ͔Ͳ͏͔ มߋՄೳ มߋෆՄ όΠτʹΞΫηε͢ΔࡍͷύϑΥʔϚϯε ྑ͍
ѱ͍ ࠷େαΠζ 2 GB ϝϞϦ ϝιουͳͲʹࢀরͱͯ͠͠ ෆՄ Մೳ ΦϒδΣΫτίϨΫγϣϯͰڞ༗Մೳ ෆՄ Մೳʂ
4Dϥϯήʔδ - Blobͱ4D.Blob Blob 4D.Blob มߋՄೳ͔Ͳ͏͔ มߋՄೳ มߋෆՄ όΠτʹΞΫηε͢ΔࡍͷύϑΥʔϚϯε ྑ͍
ѱ͍ ࠷େαΠζ 2 GB ϝϞϦ ϝιουͳͲʹࢀরͱͯ͠͠ ෆՄ Մೳ ΦϒδΣΫτίϨΫγϣϯͰڞ༗Մೳ ෆՄ Մೳʂ ΦϒδΣΫτʹ BlobΛؚΊΔ͜ͱ͕Ͱ͖Δʂ
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Λαϙʔτ͠ͳ͍ίϚϯυ
ႠͤΑɺେ͖ͳ ʙLongͷนΛ͑ͯʙ
4Dϥϯήʔδ - ႠͤΑɺେ͖ͳ C_LONGINT($vLong) var $vlong : Integer 32 bit
± 2 ^ 31 -1 -(2 ^ 31) +1
4Dϥϯήʔδ - ႠͤΑɺେ͖ͳ C_LONGINT($vLong) var $vlong : Integer 32 bit
± -2147483647 2147483647
4Dϥϯήʔδ - ႠͤΑɺେ͖ͳ C_REAL($real) var $real : Real
4Dϥϯήʔδ - ႠͤΑɺେ͖ͳ C_REAL($real) var $real : Real
2 ^ 53 -1 -(2 ^ 53) +1 4Dϥϯήʔδ -
ႠͤΑɺେ͖ͳ C_REAL($real) var $real : Real 64 bit
-9,007,199,254,740,991 9,007,199,254,740,991 4Dϥϯήʔδ - ႠͤΑɺେ͖ͳ C_REAL($real) var $real : Real
64 bit ~
-9,007,199,254,740,991 9,007,199,254,740,991 4Dϥϯήʔδ - ႠͤΑɺେ͖ͳ C_REAL($real) var $real : Real
64 bit ~
4Dϥϯήʔδ - ႠͤΑɺେ͖ͳ •৽͍͠σʔλλΠϓ͕Ճ͞Εͨ༁Ͱͳ͍ •C_LONGINTɺC_REALͷ࣮ԿมΘ͍ͬͯͳ͍ •খΛ༻͍ͯ͠ͳ͍ʹݶΓѻ͍͘͢ͳͬͨ •ʮ16ܻҎʯͰͳ͘Λ͑ͳ͍͜ͱ 64 bitܕͷओΩʔΛ࣋ͭ֎෦DBͱͷ࿈ܞ 👍
4Dϥϯήʔδ - ͦͷଞͷ৽ػೳ ϑΥʔϛϡϥΛίϨΫγϣϯίʔϧόοΫίϚϯυͰ༻ LZMA: ৽͍͠ѹॖΞϧΰϦζϜ ͞Ε͍ͯͳ͍ҾʹΞΫηε͢Δ
Thank you!