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
オブジェクト型(Developer Conference 2018より)
Search
4D Japan
January 04, 2019
Technology
190
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
オブジェクト型(Developer Conference 2018より)
4D Japan
January 04, 2019
More Decks by 4D Japan
See All by 4D Japan
4D 21 R2 R3
miyako
0
20
4D 21 LTS
miyako
0
16
4D 21
miyako
0
39
4D 20 R10
miyako
0
44
4D 20 R9
miyako
0
35
4D 20 R7 & R8
miyako
0
84
Unicodeの話 (2007)
miyako
0
45
Unicodeの話 (2008)
miyako
0
51
Google Apps Integration (2012)
miyako
0
53
Other Decks in Technology
See All in Technology
ブラウザ研修 2026
recruitengineers
PRO
3
520
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
1.2k
トヨタ⽣産⽅式(TPS)⼊⾨
recruitengineers
PRO
1
450
AI ネイティブな組織に Gemini Enterprise Agent Platform がなぜ必要なのか
asei
1
170
AIエージェントの知識表現と推論に なぜグラフが使われるのか - 記号的AIの復権とニューラルAIとの統合
yohei1126
1
280
NetBoxを利用した作業効率化の試み_NetDevNight4
tnoha
0
460
メルカリのグローバルアプリで挑んだ AlloyDB 運用と課題解決の実践記
hatappi
0
230
え?フロントエンドエンジニアの ワイがインフラも!?
puku0x
0
280
『三匹の子ぶた』から学ぶネットワークセキュリティの昔と今 / Network Security: Then and Now Through the Lens of The Three Little Pigs
nttcom
1
1.7k
制約理論(ToC)入門 2026版
recruitengineers
PRO
5
1.2k
つくって納得、つかって実感! 大規模言語モデルことはじめ ver2.0
recruitengineers
PRO
2
780
PLaMoを毎日の開発で使い育てていく
pfn
PRO
0
180
Featured
See All Featured
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
200
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
What does AI have to do with Human Rights?
axbom
PRO
1
2.3k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.5k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.3k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
320
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
420
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.9k
Transcript
Object is not JSON by Laurent Esnault JSON JSON !?
JSON != is not
/ 好 理由 Inspired 不要 類別 名前 追加
対 制約 •OB Get (object ; propertyName {; type}) •object.propertyName
•object[propertyName] •WP GET ATTRIBUTES
4D Write Pro 4 ⽅法 Four Different ways to Use
Objects with 4D Write Pro! https://blog.4d.com/four-different-ways-to-use-objects-with-4d-write-pro/
C_OBJECT 変数 変数 値 変数 値 値 $myObject $myObject reference
!= is not
参照 $myObject:=$otherObject $myObject:=New object $otherObject:=New object $myObject reference1 $otherObject reference2
$myObject reference2 $otherObject reference2 変数 代⼊ 参照
BLOB TO VARIABLE ($blob ; a.b.c) ->a.b.c 変数 != is
not × ×
OB SET 特殊性 •OB SET ($myObject ; "code" ; 1)
変数 •OB SET (myGetObject() ; "code" ; 1) 値 reference reference OB SET 新規 $myObject.code:=1
Null Undefined Undefined 存4 Undefined Null 存4 値 知 C_OBJECT,
C_COLLECTION C_POINTER Null • : Undefined Null Undefined • If (a.b = Null) Null 状態 値 ,数
未定義 怖 良 理由 Don’t be Afraid of Undefined Values
https://blog.4d.com/object-notation-improvement-after-customer-feedback/
循環
循環 / v16# BLOB v17# BLOB v17#
/ Null Undefined $0.value:=$1.value+$2.value $0->:=$1->+$2->
Non-JSON zn BLOB# Integer# Date# 16R6 String type with time
zone:1 String type without time zone:0 Date type:2 !2018-10-22! "2018-10-22" "2018-10-21T15:00:00.000Z" "2018-10-22T00:00:00.000Z" Stringify:
Non-JSON zn BLOB# Integer# Date# 16R6 Time# v17 Pointer# Stringify:
Image# Stringify: [object Picture] ORDA# Stringify: [object DataStore] [object Entity] [object EntityCollection] Write Pro View Pro# Stringify:
JSON εΩʔϚ JSON Parse JSON Validate DTD XSD SET ARRAY/OB
GET ARRAY
C_COLLECTION OB SET ARRAY/OB GET ARRAY
配列 એݴͱఆٛ ARRAY TEXT($arr;n) C_COLLECTION($col) $col:=New collection λΠϓ ⼀律 混4
ೖ $arr{$i}:="hello" $col[$i]:="hello" αΠζ Size of array($arr) $col.length ఴࣈ 0 ·ͨ 1 ͔ΒSize of array ·Ͱ 0 length-1 C_COLLECTION
Inspired copy concat combine count clear query reduce orderByMethod pop
remove push sum sort unshift some slice reverse shift resize map join min max orderBy lastIndexOf indices indexOf find filter insert findIndex extract every distinct equal fill countValues average
追加# 削除# 並 替 # 計算# ⽐較# 複製 挿⼊# 検索#
取 出 # ⽂字列変換# Inspired extract map some every indices indexOf find filter query join Split string copy concat combine slice distinct equal count sum average min max reduce orderBy orderByMethod sort reverse pop shift remove clear push insert unshift resize fill countValues lastIndexOf findIndex
⼤幅 拡張 管理 https://blog.4d.com/a-wide-range-of-possibilities-to-manage-your-collections/ A Wide Range of Possibilities to
Manage your Collections
For each = For ($i;0;$collection.length-1) MESSAGE($collection[$i]) End for
For each = For each ($element;$collection) MESSAGE($element) End for each
For ($i;0;$collection.length-1) MESSAGE($collection[$i]) End for
For each = = For each ($propertyName;$object) MESSAGE($propertyName) End for
each
For each = = = For each ($entity;$entitySelection) MESSAGE($entity.name) End
for each
For each = = = For each ($element;$collection) While($element#"") MESSAGE($element)
End for each
For each = = = For each ($element;$collection) Until($element="") MESSAGE($element)
End for each