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
クリぼっちの自分が信じられるのはもはや型のみである
Search
Ryota Sakaguchi
December 25, 2018
Technology
490
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
クリぼっちの自分が 信じられるのは もはや型のみである
Ryota Sakaguchi
December 25, 2018
More Decks by Ryota Sakaguchi
See All by Ryota Sakaguchi
大切なことは全てLintが教えてくれた
kuluna
0
58
時間を意識する推しツールたち / Time-aware tools
kuluna
1
650
DroidKaigi2020 - Data Bindingのイロハ
kuluna
1
1.5k
チームでつくる RESTful API
kuluna
1
12k
Other Decks in Technology
See All in Technology
猫付きpingコマンドを自作
uyuki234
0
230
老害フォレンジッカーはAI羊の夢を見るか?
tadmaddad
0
320
トヨタ⽣産⽅式(TPS)⼊⾨
recruitengineers
PRO
3
800
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
1.2k
取引先から届く 「セキュリティチェックシート」の読み解き方
kamadamakoto
0
150
LanceDB入門
mocobeta
7
490
生成 AI の基礎 〜 サンプル実装で学ぶ基本原理
enakai00
7
4.4k
【CEDEC2026】ゲームシナリオライターを支援するAIツール開発の実践 ― 設計とプロンプトの工夫 ―
cygames
PRO
1
840
研究開発部の紹介 / Sansan R&D Profile
sansan33
PRO
4
24k
Eight Engineering Unit 紹介資料
sansan33
PRO
3
8.2k
モノリス Rails でも日中に rails db:migrate を走らせたい! / Daytime rails db:migrate on Monolithic Rails!
euglena1215
4
580
20260804_Q4AzureUpdateBite_FabricDataAgentの精度を高める設計.pdf
matayuuu
1
130
Featured
See All Featured
Being A Developer After 40
akosma
91
590k
How to build a perfect <img>
jonoalderson
1
5.9k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.8k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
73
41k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.4k
How to Ace a Technical Interview
jacobian
281
24k
Prompt Engineering for Job Search
mfonobong
0
400
Large-scale JavaScript Application Architecture
addyosmani
515
110k
4 Signs Your Business is Dying
shpigford
187
22k
Thoughts on Productivity
jonyablonski
76
5.3k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.4k
Transcript
{ "shop": { "id": 1, "name": "", "employees": [ {
"id": 1, "job_id": 1, "name": "kuluna" } ] } }
import Foundation struct Employee: Decodable { let id: Int let
job_id: Int let name: String } struct Shop: Decodable { let id: Int let name: String let employees: [Employee] } struct ShopResponse: Decodable { let shop: Shop }
let response = try! JSONDecoder().decode( ShopResponse.self, from: json.data(using: .utf8)! )
print(response.shop.name) // “”
☺
let shop = response.shop shop.id == shop.employees.first?.job_id
let newEmployee = Employee( id: shop.id, job_id: 0, name: "Sakaguchi"
)
!
-
!
struct ShopId: Codable, Equatable { let value: Int init(_ value:
Int) { self.value = value } public init(from decoder: Decoder) throws { self.value = try decoder.singleValueContainer().decode(Int.self) } public func encode(to encoder: Encoder) throws { var c = encoder.singleValueContainer() try c.encode(self.value) } }
struct Shop: Decodable { let id: ShopId let name: String
let employees: [Employee] }
☺ ☺ Comparable