Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
How to read Swift
Search
Yusuke Hosonuma
February 14, 2015
Programming
310
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
How to read Swift
声に出して読みたいSwift
Yusuke Hosonuma
February 14, 2015
More Decks by Yusuke Hosonuma
See All by Yusuke Hosonuma
KotlinTest で始める Property-based Testing/kotlintest-property-based-testing
yusukehosonuma
2
1.6k
Marzipan の正体は何だったのか そして SwiftUI の衝撃/wwdc19_marzipan_swiftui
yusukehosonuma
2
990
標準パッケージにおけるテストでの利用例から学ぶ testing / quick パッケージ/golang-testing-quick
yusukehosonuma
4
12k
Swift で ParameterizedTest をやってみた話/swift-parameterized-test
yusukehosonuma
4
2.3k
Property-based test beginning with SwiftCheck
yusukehosonuma
1
6.3k
XCTest(再)入門/reintroduction-to-xctest
yusukehosonuma
0
660
ソースコードから読み解く - Quick はどのように実装されているのか?/quick-code-reading
yusukehosonuma
7
11k
Swift 4.2 はどのような進化をしているのか/whats-new-swift42
yusukehosonuma
16
15k
HTTPモックライブラリ「Mockingjay」を使ってみた話/swift-mockingjay
yusukehosonuma
5
4.4k
Other Decks in Programming
See All in Programming
Jetpack Compose メカニズム
skydoves
0
470
Streamlitで実現する自然言語データアプリ開発
ayumu_yamaguchi
1
310
TiDB Cloudのカスタムコントローラーによるオートスケール対応
takaidohigasi
0
130
wkhtmltopdfの次どうするか問題2026
willnet
2
1.7k
市販E-Readerを乗っ取れ 〜Embedded Swiftで電子ペーパーガジェットを制御する〜
trickart
0
210
技術的負債を組織課題として解く-増えすぎたマイクロサービスとの戦い-
reimaru
1
2.3k
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
290
Ghostty + Neovimで作る 透明でカッコ良い開発環境
j341nono
0
120
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
340
AWS Step Functions 大規模並列の壁を越える / jaws-sonic-2026-niigata-step-functions
kasacchiful
PRO
1
520
モバイル交通系ICへのチャージ実例から考える、クロスプラットフォーム開発におけるiOS実機テスト設計とCI運用
yusuga
1
540
巨大モノリシックアプリ モダン化大作戦
ktcryomm
1
1.1k
Featured
See All Featured
How to Talk to Developers About Accessibility
jct
2
550
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
ラッコキーワード サービス紹介資料
rakko
1
5M
Marketing to machines
jonoalderson
1
5.8k
How to train your dragon (web standard)
notwaldorf
97
6.8k
The untapped power of vector embeddings
frankvandijk
2
1.9k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
530
Embracing the Ebb and Flow
colly
88
5.2k
エンジニアに許された特別な時間の終わり
watany
109
250k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
900
First, design no harm
axbom
PRO
2
1.3k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
290
Transcript
SwiftͷಡΈํ ʹग़ͯ͠ಡΈ͍ͨSwift
ࣗݾհ • Yusuke Hosonuma • ͖ͳݴޠɿJavaɺScalaɺSwiftʁ • Qiitaɿqiita.com/YusukeHosonuma • झຯɿΞχϝͱ͔ݟ·͢ɻ߈֪ػಈୂͱ͔ɻ
ࠓͷςʔϚ
Swiftͬͯ ຊʹಡΈ͍͢ʁ
ຊʹʁ var name: String? var name: String! var name: String
= userName ?? "Guest" func sum(number1 a:Int, number2 b:Int) -> Int { return a + b } fruits.sort({ (s1: String, s2: String) -> Bool in return s1 < s2 }) func say(greet: String) -> (String -> String) { func greet(name: String) -> String { return "\(greet), \(name)!" } return greet }
׳ΕΔ·Ͱਏ͍ ʢݸਓͷײͰ͢ʣ
ͦΕͳΒ ʹग़ͯ͠ಡΜͰΈΑ͏ʂ
ʹग़ͯ͠ಡΈ͍ͨ Swiftʢ͢͏͌;ͱʣ
Lesson1: ม var name: String
Lesson1: ͜͏ಡΈ·͢ var name: String ᶃม ᶄname ᶅStringܕͰఆٛ͞ΕΔ ৭ΜͳॴͰΘΕΔ جຊܗʂ
Lesson2: Optional var name: String?
Lesson2: ͜͏ಡΈ·͢ var name: String? ᶃม ᶄname ᶅStringܕ ᶆͷOptionalܕͰఆٛ͞ΕΔ
Lesson3: ڧ੍Ξϯϥοϓܕ var name: String!
Lesson3: ͜͏ಡΈ·͢ var name: String! ᶃม ᶄname ᶅStringܕ ᶆͷOptionalܕ ᶇ͚ͩͲʂ
ڧ੍తʹUnwrap͞ΕΔʂʂ
Lesson4: Nil Coalescing Operator var name: String = userName ??
"Guest"
Lesson4: ͜͏ಡΈ·͢ var name: String = userName ?? "Guest" ᶃมnameʹ
ᶄuserNameʹ͕ೖͬͯͨΒ ᶅͦͷத ᶆೖͬͯͳ͚Ε͜Ε ᶇΛೖ͢Δ
Lesson5: ϝιου func sayHello(name s:String) -> String { return “Hello,
\(s)!” } sayHello(name: "Yusuke")
Lesson5: ͜͏ಡΈ·͢ func sayHello(name s:String) -> String { return “Hello,
\(s)!” } sayHello(name: "Yusuke") ᶃϝιου ᶅStringܕͰఆٛ͞Εͨ ᶄsayHello ᶆsͱ͍͏ҾΛड͚औΓ ᶇStringܕͷ݁ՌΛฦ͢ ᶈͪͳΈʹݺͼग़͢ͱ͖ʹ nameͰࢦఆͯ͠Β͏
Lesson6: Ϋϩʔδϟ fruits.sort({ (s1: String, s2: String) -> Bool in
return s1 < s2 })
Lesson6: ͜͏ಡΈ·͢ fruits.sort({ (s1: String, s2: String) -> Bool in
return s1 < s2 }) ᶃsortʹ༩͑ΔΫϩʔδϟ{} ᶄStringܕͷ(s1, s2)ΛҾʹड͚औΓ ᶅBoolܕΛฦ͢ ᶆͦͯ͠ ᶇ࣮ࡍͷॲཧ͜͏ͳΔ
॓: ؔΛฦؔ͢ func say(greet: String) -> (String -> String) {
func greet(name: String) -> String { return "\(greet), \(name)!" } return greet } let sayHello = say("Hello") sayHello(name: "Hosonuma") sayHello(name: "Yusuke")
5ճ͘Β͍ʹग़ͯ͠ ಡΜͰΈΕ
͖ͬͱ͋ͳͨSwift͕ ͖ʹͳͬͯ͘Δͣʂ
Let’s say Swift.
͝੩ௌ͋Γ͕ͱ͏ ͍͟͝·ͨ͠ɻ