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
cmp.Or に感動した
Search
Kotaro Otaka
November 20, 2024
Programming
3
990
cmp.Or に感動した
The Go gopher was designed by Renée French.
https://golangtokyo.connpass.com/event/331510/
Kotaro Otaka
November 20, 2024
Tweet
Share
More Decks by Kotaro Otaka
See All by Kotaro Otaka
Go で作った CLI ツールにバージョンを埋め込みたい
otakakot
0
180
組込みだけじゃない!TinyGo で始める無料クラウド開発入門
otakakot
2
500
組込みだけじゃない! TinyGo で始める無料クラウド開発入門
otakakot
1
96
統一感のある Go コードを生成 AI の力で手にいれる
otakakot
1
3.7k
SQLBoiler がメンテナンスモードになりまして
otakakot
0
290
Wasm わからないけど Go で実装したいから入門する
otakakot
1
10k
net/http/httptest が推しです♡
otakakot
3
360
無料で楽しむ Go サーバー開発のススメ
otakakot
11
4.1k
Go のテストで失敗をマークする
otakakot
1
300
Other Decks in Programming
See All in Programming
2026年 エンジニアリング自己学習法
yumechi
0
130
インターン生でもAuth0で認証基盤刷新が出来るのか
taku271
0
190
SourceGeneratorのススメ
htkym
0
200
AI Schema Enrichment for your Oracle AI Database
thatjeffsmith
0
280
CSC307 Lecture 03
javiergs
PRO
1
490
責任感のあるCloudWatchアラームを設計しよう
akihisaikeda
3
170
AIによるイベントストーミング図からのコード生成 / AI-powered code generation from Event Storming diagrams
nrslib
2
1.9k
IFSによる形状設計/デモシーンの魅力 @ 慶應大学SFC
gam0022
1
300
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
570
humanlayerのブログから学ぶ、良いCLAUDE.mdの書き方
tsukamoto1783
0
190
Unicodeどうしてる? PHPから見たUnicode対応と他言語での対応についてのお伺い
youkidearitai
PRO
1
2.5k
AI巻き込み型コードレビューのススメ
nealle
1
230
Featured
See All Featured
My Coaching Mixtape
mlcsv
0
48
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
100
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
430
A Tale of Four Properties
chriscoyier
162
24k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
220
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3k
Being A Developer After 40
akosma
91
590k
Building Adaptive Systems
keathley
44
2.9k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
14k
KATA
mclloyd
PRO
34
15k
Color Theory Basics | Prateek | Gurzu
gurzu
0
200
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.2k
Transcript
おーたかこーたろー @otakakot The Go gopher was designed by Renée French.
cmp.Or に感動した 2024.11.20 golang.tokyo #37
cmp.Or 関数をご存知ですか?
Go 標準の cmp パッケージの関数 google/go-cmp
Kotaro Otaka おーたかこーたろー Web Engineer 新卒入社 Hello Golang! Web Engineer
株式会社ビットキー 2020.04 2021.04 2022.11 @otakakot
https://speakerdeck.com/otakakot/free-go-server-development-recommendations https://zenn.dev/otakakot/articles/9e9269a87aafeb
アジェンダ 01. cmp.Or とは 02. cmp.Or の使い方 03. cmp.Or の実装
04. cmp.Or にヒントを得て
アジェンダ 01. cmp.Or とは 02. cmp.Or の使い方 03. cmp.Or の実装
04. cmp.Or にヒントを得て
Go 1.22 で登場した関数 cmp.Or とは ref: https://go.dev/doc/go1.22
アジェンダ 01. cmp.Or とは 02. cmp.Or の使い方 03. cmp.Or の実装
04. cmp.Or にヒントを得て
cmp.Or の使い方 ref: https://pkg.go.dev/cmp#Or
Go 1.22 リリースパーティ 2023.03.18 開催 https://gocon.connpass.com/event/310606/ https://youtu.be/0nsryM4X-0I?t=1038 GoのマスコットのGopherの原作者はRenee Frenchさんです Gopherのイラストはtenntennさんによるものです
cmp.Or の使い方
アジェンダ 01. cmp.Or とは 02. cmp.Or の使い方 03. cmp.Or の実装
04. cmp.Or にヒントを得て
cmp.Or 関数の実装 ref: https://cs.opensource.google/go/go/+/refs/tags/go1.23.2:src/cmp/cmp.go
アジェンダ 01. cmp.Or とは 02. cmp.Or の使い方 03. cmp.Or の実装
04. cmp.Or にヒントを得て
nil に対して似たようなことできそう
• NilOr … 最初にヒットした Not nil な値を返す • NilDef …
nil だったら default 値を返す • NilZero … nil だったら zero 値を返す リポジトリ https://github.com/otakakot/nilx nilx という nil に対する便利関数
最初にヒットした Not nil な値を返す
最初にヒットした Not nil な値を返す ~ 使い方 ~
最初にヒットした Not nil な値を返す
最初にヒットした Not nil な値を返す ~ 使い方 ~
nil だったら default 値を返す
nil だったら default 値を返す ~ 使い方 ~
nil だったら zero 値を返す
nil だったら zero 値を返す ~ 使い方 ~
雑感 • NilOr で事足りるが名前をつけて使い方を明確化 ◦ NilDef ◦ NilZero • 戻り値を値にするかポインタにするか
◦ 安全に倒すために値を返却
ぱっと思いつきそうではある
ライブラリやほかにもアイデア を知っていたら教えてください!
おーたかこーたろー @otakakot The Go gopher was designed by Renée French.
cmp.Or に感動した 2024.11.20 golang.tokyo #37