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
Escaping Closures in Swift - 公司內分享會
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Lihsuan Chen
September 23, 2016
Programming
1
260
Escaping Closures in Swift - 公司內分享會
Lihsuan Chen
September 23, 2016
Tweet
Share
More Decks by Lihsuan Chen
See All by Lihsuan Chen
iPlayground 2025 - 接⼿ 10年⼤雜燴:專案現代化與產品開發的挑戰
vc7
0
140
The UX thinking of PAY ID
vc7
2
480
From Onboarding to Value Delivering in iOS
vc7
0
290
Merciless Refactoring
vc7
0
800
Protocol 的實例、測試和心得
vc7
2
820
共有経済
vc7
0
200
.gitignore
vc7
1
120
Git Workshop 03
vc7
0
150
Git Workshop 02
vc7
0
140
Other Decks in Programming
See All in Programming
GISエンジニアから見たLINKSデータ
nokonoko1203
0
190
なるべく楽してバックエンドに型をつけたい!(楽とは言ってない)
hibiki_cube
0
120
ZJIT: The Ruby 4 JIT Compiler / Ruby Release 30th Anniversary Party
k0kubun
1
380
從冷知識到漏洞,你不懂的 Web,駭客懂 - Huli @ WebConf Taiwan 2025
aszx87410
2
3.4k
Unicodeどうしてる? PHPから見たUnicode対応と他言語での対応についてのお伺い
youkidearitai
PRO
0
920
MDN Web Docs に日本語翻訳でコントリビュート
ohmori_yusuke
0
590
QAフローを最適化し、品質水準を満たしながらリリースまでの期間を最短化する #RSGT2026
shibayu36
2
3.8k
開発者から情シスまで - 多様なユーザー層に届けるAPI提供戦略 / Postman API Night Okinawa 2026 Winter
tasshi
0
110
CSC307 Lecture 02
javiergs
PRO
1
770
Implementation Patterns
denyspoltorak
0
250
Spinner 軸ズレ現象を調べたらレンダリング深淵に飲まれた #レバテックMeetup
bengo4com
1
220
Vibe Coding - AI 驅動的軟體開發
mickyp100
0
160
Featured
See All Featured
Building Applications with DynamoDB
mza
96
6.9k
The Spectacular Lies of Maps
axbom
PRO
1
440
SEO for Brand Visibility & Recognition
aleyda
0
4.2k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
100
A Soul's Torment
seathinner
5
2.2k
Side Projects
sachag
455
43k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
0
94
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
44
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
0
3.4k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
0
290
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
120
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
82
Transcript
&TDBQJOH$MPTVSFT ꤫խ愴蠩 @escaping
䖰ㆭ酭鷗鷗ㆭ酭
殹DMPTVSF⡲捀侸⫄Ⰵ♧⦐NFUIPE儘 鸏⦐DMPTVSF剚㖈NFUIPE㛂遤㸤䧭䖕 䩞剚鄄㛂遤儘㽠䗳갭䭸㹁䧭FTDBQJOHDMPTVSF
⾲㨥䞕㞯 雊䧮⦛⢵䢩䢩⸈匌銯
class A { func someMethod(closure: () -> Void) { closure()
} } 鸏♧媯♶剚剤DPNQJMFSFSSPS
䞕㞯♧ 鸏⦐DMBTT剤⦐荈㹁纏涸RVFVF ⢵嶋⻋♶ずNFUIPE⫄Ⰵ涸DMPTVSFT
class A { var closures: [() -> Void]? = []
func someMethod(closure: () -> Void) { self.closures?.append(closure) } } 㖈4XJGUⴀ⢵⟃鸏媯♶剚剤㉏겗
class A { var closures: [() -> Void]? = []
func someMethod(closure: () -> Void) { self.closures?.append(closure) } }
None
class A { var closures: [() -> Void]? = []
func someMethod(closure: @escaping () -> Void) { self.closures?.append(closure) } }
㼭穡 • @escaping ˖ ⫄ⰅNFUIPE涸DMPTVSF㥶卓銴㖈NFUIPE GVODUJPO涸SFUVSO䖕䩞㛂遤㽠䗳갭銴⸈♳ @escaping ˖ @noescapeJNQMJDJUMZ ˖
DMPTVSF⡲捀侸갸鏤鿪僽@noescape
䞕㞯✳ 䧮欽痧♲倰MJCSBSZ涸NFUIPE FH"MBNPSF
〫銴➮剤FTDBQJOH ⡹㽠銴騈衽!FTDBQJOH
class B { var closures: [() -> Void]? = []
func anotherMethod(closure: @escaping () -> Void) { self.closures?.append(closure) } }
class A { func someMethod(closure: () -> Void) { B().anotherMethod(closure:
closure) } } class B { var closures: [() -> Void]? = [] func anotherMethod(closure: @escaping () -> Void) { self.closures?.append(closure) } } 㖈4XJGUⴀ⢵⟃鸏垺㻨♶剚剤㉏겗
class A { func someMethod(closure: () -> Void) { B().anotherMethod(closure:
closure) } } class B { var closures: [() -> Void]? = [] func anotherMethod(closure: @escaping () -> Void) { self.closures?.append(closure) } }
None
class A { func someMethod(closure: @escaping () -> Void) {
B().anotherMethod(closure: closure) } } class B { var closures: [() -> Void]? = [] func anotherMethod(closure: @escaping () -> Void) { self.closures?.append(closure) } }
籏穡♧♴
䖰ㆭ酭鷗鷗ㆭ酭
鷗ⴀ㛂遤涸眕㕠
Ⱖ➮ ˖ 〳⟃鍑对SFUBJODZDMF涸㉏겗 4& 䖊㻜뀿 ˖ OPFTDBQFDMPTVSFTIBWFBMTPBMXBZTCFFOUIF QSFGFSSFEEFGBVMU
TJODFUIFZFMJNJOBUFBDMBTT PGSFUBJODZDMFJTTVFT ˖ QSPUPDPM涸㹁纏 ˖ 㥶卓㻜⡲QSPUPDPM涸倰岁儘銴⸈!FTDBQJOH QSPUPDPM⚥鑪倰岁涸㹁纏⛳銴⸈♳
5IBOL:PV