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
Swift 5 Exclusivity Enforcement
Search
darquro
February 12, 2019
Technology
4
840
Swift 5 Exclusivity Enforcement
darquro
February 12, 2019
Tweet
Share
More Decks by darquro
See All by darquro
技術的負債を解消してくための組織づくり
darquro
1
980
Jailbreakと向き合おう
darquro
0
2.6k
ラクマでのSwiftUI導入方針とTips / Rakuma SwiftUI Introduction Policy and Tips
darquro
2
5.3k
Half modal comparision in iOS15
darquro
2
2.2k
2 Years Challenge as Engineering Manager in Rakuma
darquro
0
140
Property Wrappersがもたらす新しいSwiftプログラミング / New Swift programming with Property Wrappers
darquro
3
1.7k
iOS View Class Design Basic
darquro
3
780
SDK連携を用いたAdMob活用法
darquro
1
1k
ContributingSwift
darquro
0
86
Other Decks in Technology
See All in Technology
コンテキストエンジニアリング入門〜AI Coding Agent作りで学ぶ文脈設計〜
kworkdev
PRO
2
1.4k
AWSでAgentic AIを開発するための前提知識の整理
nasuvitz
2
160
incident_commander_demaecan__1_.pdf
demaecan
0
140
ガバメントクラウド(AWS)へのデータ移行戦略の立て方【虎の巻】 / 20251011 Mitsutosi Matsuo
shift_evolve
PRO
2
200
AgentCon Accra: Ctrl + Alt + Assist: AI Agents Edition
bethany
0
110
CoRL 2025 Survey
harukiabe
1
200
生成AI時代のセキュアコーディングとDevSecOps
yuriemori
0
100
これがLambdaレス時代のChatOpsだ!実例で学ぶAmazon Q Developerカスタムアクション活用法
iwamot
PRO
7
1.1k
AWS Top Engineer、浮いてませんか? / As an AWS Top Engineer, Are You Out of Place?
yuj1osm
2
210
PHPからはじめるコンピュータアーキテクチャ / From Scripts to Silicon: A Journey Through the Layers of Computing Hiroshima 2025 Edition
tomzoh
0
140
"プロポーザルってなんか怖そう"という境界を超えてみた@TSUDOI by giftee Tech #1
shilo113
0
200
プレーリーカードを活用しよう❗❗デジタル名刺交換からはじまるイベント会場交流のススメ
tsukaman
0
170
Featured
See All Featured
How STYLIGHT went responsive
nonsquared
100
5.8k
The World Runs on Bad Software
bkeepers
PRO
72
11k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
It's Worth the Effort
3n
187
28k
Why Our Code Smells
bkeepers
PRO
340
57k
Large-scale JavaScript Application Architecture
addyosmani
514
110k
Mobile First: as difficult as doing things right
swwweet
224
10k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
A Tale of Four Properties
chriscoyier
161
23k
Gamification - CAS2011
davidbonilla
81
5.5k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
45
2.5k
How GitHub (no longer) Works
holman
315
140k
Transcript
Re:valua t ion https://fril.jp/ L ead & Delight User F
irst Ownership Fail Smart 4XJGU&YDMVTJWJUZ&OGPSDFNFOU 'FCUI BU4XJGUѪձWPM
.PCJMF&OHJOFFS 3BLVUFO JOD "CPVU.F :VLJ,VSPEB !EBSRVSP !EBSRVSP
None
4XJGU&YDMVTJWJUZ&OGPSDFNFOU IUUQTTXJGUPSHCMPHTXJGUFYDMVTJWJUZ
#BDLHSPVOE
#BDLHSPVOE 4XJGUͰϝϞϦ҆શੑΛ୲อ͢ΔͨΊʹɺ ഉଞతΞΫηε͕ඞཁ
#BDLHSPVOE func modifyTwice(_ value: inout Int, by modifier:
(inout Int) -> ()) { modifier(&value) modifier(&value) } func testCount() { var count = 1 modifyTwice(&count) { $0 += count } print(count) }
#BDLHSPVOE func modifyTwice(_ value: inout Int, by modifier:
(inout Int) -> ()) { modifier(&value) modifier(&value) } func testCount() { var count = 1 modifyTwice(&count) { $0 += count } print(count) } 0WFSMBQQJOHBDDFTTFTUPDPVOU CVUNPEJpDBUJPOSFRVJSFTFYDMVTJWF BDDFTTDPOTJEFSDPQZJOHUPBMPDBMWBSJBCMF
#BDLHSPVOE w ಉ࣌ΞΫηεʹରͯ͠ίϯύΠϥಈ࡞Λอূ͠ͳ͍ w ίϯύΠϥͷΦϓςΟϚΠθʔγϣϯʹΑΓɺ༧ଌͰ ͖ͳ͍ಈ࡞ʹͳΔ͜ͱ͕͋Δɻ w 4XGJUͰഉଞతΞΫηεͷڧ੍Λಋೖͨ͠ɻ
4& IUUQTHJUIVCDPNBQQMFTXJGUFWPMVUJPOCMPCNBTUFSQSPQPTBMTFOGPSDF FYDMVTJWFBDDFTTUPNFNPSZNE
#BDLHSPVOE ίϯύΠϥͷഉଞతΞΫηεͷڧ੍ w ίϯύΠϧ࣌νΣοΫ $PNQJMFUJNF w ࣮ߦ࣌νΣοΫ
3VOUJNF
#BDLHSPVOE 4XJGU 4XJGU $PNQJMFUJNF %FCVH#VJME 3FMFBTF#VJME %FCVH#VJME 3FMFBTF#VJME
3VOUJNF %FCVH#VJME %FCVH#VJME 3FMFBTF#VJME ഉଞతϝϞϦΞΫηεͷEFGBVMUઃఆ
*NQBDUPO4XJGU1SPKFDUT
*NQBDUPO4XJGU1SPKFDUT طଘϓϩδΣΫτͷӨڹ w ഉଞϧʔϧʹҧ͍ͯͯ͠ɺσόοάςετͰ࣮ߦͰ ͖ͳ͔ͬͨίʔυʹରͯ͠Ϋϥογϡ͢ΔՄೳੑ w ύϑΥʔϚϯεʹӨڹ͕ͰΔՄೳੑ͕͋Δɻ w
ಛʹϧʔϓॲཧʹ͓͍ͯҟͳΔΦϒδΣΫτؒͰΞΫηε͢Δ߹ʹҙ͢Δɻ w ΫϥεͷϓϩύςΟͳͲQSJWBUFͱ͔JOUFSOBMʹ͢Δ͜ͱͰίϯύΠϥʹ໌ࣔతʹ ͑ΔͳͲ͕ඞཁɻ
*NQBDUPO4XJGU1SPKFDUT 9DPEFͰl&YDMVTJWF"DDFTTUP.FNPSZzͰมߋͰ͖Δ͕ɺ ύϑΥʔϚϯε༏ઌͷͨΊͷϦϦʔεϏϧυͰແޮʹ͢Δ͜ͱ ਪ͠ͳ͍ɻ ΫϥογϡϝϞϦഁյͳͲ༧ظ͠ͳ͍ڍಈΛট͘Մೳੑ
&YBNQMFT
&YBNQMF func modifyTwice(_ value: inout Int, by modifier:
(inout Int) -> ()) { modifier(&value) modifier(&value) } func testCount() { var count = 1 let incrementBy = count modifyTwice(&count) { $0 += incrementBy } print(count) }
&YBNQMF func modifyTwice(_ value: inout Int, by modifier:
(inout Int) -> ()) { modifier(&value) modifier(&value) } var count = 1 modifyTwice(&count) { $0 += count } print(count) 4JNVMUBOFPVTBDDFTTUPY CVUNPEJpDBUJPOSFRVJSFTFYDMVTJWFBDDFTT
.PUJWBUJPO
.PUJWBUJPO ϓϩάϥϜͷن͕େ͖͘ͳΔʹͭΕɺͲ͜ͰͲ͏ ͕มߋ͞ΕΔͷ͔ঢ়ଶ͕༧ଌͰ͖ͳ͍ ݴޠ༷ͱͯ͠༧ଌෆೳͳৼΔ͍Λഉআ "#*҆ఆੑʹෆՄܽ
ύϑΥʔϚϯεͷ࠷దԽ 0XOFSTIJQͱNPWFPOMZUZQFTʹඞཁ
·ͱΊ
4XJGU&YDMVTJWJUZ&OGPSDFNFOU w 4XJGUͰഉଞతϝϞϦΞΫηεͷ࣮ߦ࣌νΣοΫ͕ ϦϦʔεϏϧυͰσϑΥϧτ༗ޮͱͳΔ w 4XJGUͷ҆શੑɺݎ࿚ੑ͕ڧԽ w ύϑΥʔϚϯεʹର͢ΔΦϓςΟϚΠθʔγϣϯͷ্
5IBOLZPVGPSMJTUFOJOH