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
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
980
標準パッケージにおけるテストでの利用例から学ぶ 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.2k
XCTest(再)入門/reintroduction-to-xctest
yusukehosonuma
0
650
ソースコードから読み解く - Quick はどのように実装されているのか?/quick-code-reading
yusukehosonuma
7
11k
Swift 4.2 はどのような進化をしているのか/whats-new-swift42
yusukehosonuma
16
15k
HTTPモックライブラリ「Mockingjay」を使ってみた話/swift-mockingjay
yusukehosonuma
5
4.3k
Other Decks in Programming
See All in Programming
AI時代のUIはどこへ行く?その2!
yusukebe
21
7.2k
Inside Stream API
skrb
1
720
A2UI という光を覗いてみる
satohjohn
1
140
jQueryをバージョンアップする前に使いたいjQuery Migrate
matsuo_atsushi
0
500
Lemonade + Foundry Toolkit でお手軽アプリ開発
seosoft
1
340
Java × distroless で 軽量なコンテナイメージを / Java on Distroless
contour_gara
0
540
肥大化するレガシーコードに立ち向かうためのインターフェース分離と依存の逆転 / JJUG CCC 2026 Spring
hirokunimaeta
0
560
脅威をエンジニアリングの糧にして――現場編 / Turning Threats into Engineering Fuel — Field Edition
nrslib
0
280
Go1.27で導入されるジェネリクスメソッドでできること
mackee
0
120
タクシーアプリ『GO』の バックエンド開発のおける AI利活用と若者のすべて
pyama86
3
2k
ユニットテストの先へ:テスト技法で要求・仕様を整理するJava開発実践 / Beyond_Unit_Testing_Practical_Java_Development_Techniques_for_Organizing_Requirements_and_Specifications
shimashima35
0
400
3Dシーンの圧縮
fadis
1
770
Featured
See All Featured
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
330
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
230
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.9k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Mind Mapping
helmedeiros
PRO
1
250
BBQ
matthewcrist
89
10k
Automating Front-end Workflow
addyosmani
1370
210k
A designer walks into a library…
pauljervisheath
211
24k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
320
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.
͝੩ௌ͋Γ͕ͱ͏ ͍͟͝·ͨ͠ɻ