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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
12
4D 21 LTS
miyako
0
16
4D 21
miyako
0
38
4D 20 R10
miyako
0
41
4D 20 R9
miyako
0
32
4D 20 R7 & R8
miyako
0
81
Unicodeの話 (2007)
miyako
0
42
Unicodeの話 (2008)
miyako
0
48
Google Apps Integration (2012)
miyako
0
50
Other Decks in Technology
See All in Technology
5分でわかる Amazon Connect_20260608
hwangbyeonghun
0
180
Mastraエージェント、どのクラウドにデプロイする?
minorun365
PRO
2
170
AI時代のエンジニアキャリアについて今一度考える
sakamoto_582
1
1.2k
背中から、背中へ /paying forward to community
naitosatoshi
0
220
Hatena Engineer Seminar 37 jj1uzh
jj1uzh
0
430
ゼロをイチにする仕事が終わったあと
smasato
0
290
飲食店もAIで。レジ締めやハンディシステムをつくってる話 / Using AI for restaurant management
vtryo
0
240
認証認可だけじゃない! ID管理の構成要素と ライフサイクルを意識しよう
ritou
1
470
依頼文化をやめる日 EM視点で語るPlatform EngineeringとInclusive SRE / Discussing Platform Engineering and Inclusive SRE from an EM's Perspective
shin1988
3
1.7k
AIに「使われる」時代のSaaS戦略 〜既存WebAPIのMCPサーバー化における開発ノウハウ〜
ekispert_api
0
290
End-to-Endで考える信頼性 —LINEアプリにおけるクライアント開発×SRE連携の実践
maruloop
1
320
型は壁、Rustでもバグを直すな、表現できなくせよ
nwiizo
9
1k
Featured
See All Featured
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
250
Building a Scalable Design System with Sketch
lauravandoore
463
34k
How to make the Groovebox
asonas
2
2.3k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
220
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.7k
Mobile First: as difficult as doing things right
swwweet
225
10k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
220
The SEO Collaboration Effect
kristinabergwall1
1
500
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
56k
Paper Plane
katiecoart
PRO
1
52k
GraphQLとの向き合い方2022年版
quramy
50
15k
Bash Introduction
62gerente
615
220k
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