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.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.3k
Other Decks in Programming
See All in Programming
ソフトウェア設計に溶けるインフラ ― AWS CDK のインフラ認識論
konokenj
2
430
Snowflake Summitでの新機能 CoCo / CoWork / snowflake-summit-2026-overall-what-new-coco
tatsuhiro
1
230
Embedded SREと共に達成した会員管理システムのAWS移行 - SRE NEXT 2026 ランチスポンサーセッション
niftycorp
PRO
1
2.5k
yield再入門 #phpcon
o0h
PRO
0
320
Foundation Models frameworkで画像分析
ryodeveloper
1
120
JAWS-UG横浜 #102 AWSサ終供養LT会 成仏できない AWS サービスたち 〜本日、三体供養します〜
maroon1st
0
180
ローカルLLMでどこまでコードが書けるか -縮小版 / How much code can be written on a local LLM Shortened
kishida
2
190
分散システム、なんですぐ死んでしまうん?耐障害性を高めたいあなたのためのレジリエンスパターン入門
mshibuya
7
6k
トークンをケチるな、設計しろ:GitHub Copilotを賢く使うコンテキスト戦略
ochtum
0
320
はてなアカウント基盤 State of the Union
cockscomb
1
1.3k
霧の中の代数的エフェクト
funnyycat
1
380
Honoでのサプライチェーン侵害対策 〜 3つのライブラリに学ぶ
yusukebe
7
1.9k
Featured
See All Featured
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
720
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.8k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
350
WCS-LA-2024
lcolladotor
0
710
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
190
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
630
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
260
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.4k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.4k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
510
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2k
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.
͝੩ௌ͋Γ͕ͱ͏ ͍͟͝·ͨ͠ɻ