Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
おーたかこーたろー @otakakot The Go gopher was designed by Renée French. cmp.Or に感動した 2024.11.20 golang.tokyo #37
Slide 2
Slide 2 text
cmp.Or 関数をご存知ですか?
Slide 3
Slide 3 text
Go 標準の cmp パッケージの関数 google/go-cmp
Slide 4
Slide 4 text
Kotaro Otaka おーたかこーたろー Web Engineer 新卒入社 Hello Golang! Web Engineer 株式会社ビットキー 2020.04 2021.04 2022.11 @otakakot
Slide 5
Slide 5 text
https://speakerdeck.com/otakakot/free-go-server-development-recommendations https://zenn.dev/otakakot/articles/9e9269a87aafeb
Slide 6
Slide 6 text
アジェンダ 01. cmp.Or とは 02. cmp.Or の使い方 03. cmp.Or の実装 04. cmp.Or にヒントを得て
Slide 7
Slide 7 text
アジェンダ 01. cmp.Or とは 02. cmp.Or の使い方 03. cmp.Or の実装 04. cmp.Or にヒントを得て
Slide 8
Slide 8 text
Go 1.22 で登場した関数 cmp.Or とは ref: https://go.dev/doc/go1.22
Slide 9
Slide 9 text
アジェンダ 01. cmp.Or とは 02. cmp.Or の使い方 03. cmp.Or の実装 04. cmp.Or にヒントを得て
Slide 10
Slide 10 text
cmp.Or の使い方 ref: https://pkg.go.dev/cmp#Or
Slide 11
Slide 11 text
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さんによるものです
Slide 12
Slide 12 text
cmp.Or の使い方
Slide 13
Slide 13 text
アジェンダ 01. cmp.Or とは 02. cmp.Or の使い方 03. cmp.Or の実装 04. cmp.Or にヒントを得て
Slide 14
Slide 14 text
cmp.Or 関数の実装 ref: https://cs.opensource.google/go/go/+/refs/tags/go1.23.2:src/cmp/cmp.go
Slide 15
Slide 15 text
アジェンダ 01. cmp.Or とは 02. cmp.Or の使い方 03. cmp.Or の実装 04. cmp.Or にヒントを得て
Slide 16
Slide 16 text
nil に対して似たようなことできそう
Slide 17
Slide 17 text
● NilOr … 最初にヒットした Not nil な値を返す ● NilDef … nil だったら default 値を返す ● NilZero … nil だったら zero 値を返す リポジトリ https://github.com/otakakot/nilx nilx という nil に対する便利関数
Slide 18
Slide 18 text
最初にヒットした Not nil な値を返す
Slide 19
Slide 19 text
最初にヒットした Not nil な値を返す ~ 使い方 ~
Slide 20
Slide 20 text
最初にヒットした Not nil な値を返す
Slide 21
Slide 21 text
最初にヒットした Not nil な値を返す ~ 使い方 ~
Slide 22
Slide 22 text
nil だったら default 値を返す
Slide 23
Slide 23 text
nil だったら default 値を返す ~ 使い方 ~
Slide 24
Slide 24 text
nil だったら zero 値を返す
Slide 25
Slide 25 text
nil だったら zero 値を返す ~ 使い方 ~
Slide 26
Slide 26 text
雑感 ● NilOr で事足りるが名前をつけて使い方を明確化 ○ NilDef ○ NilZero ● 戻り値を値にするかポインタにするか ○ 安全に倒すために値を返却
Slide 27
Slide 27 text
ぱっと思いつきそうではある
Slide 28
Slide 28 text
ライブラリやほかにもアイデア を知っていたら教えてください!
Slide 29
Slide 29 text
おーたかこーたろー @otakakot The Go gopher was designed by Renée French. cmp.Or に感動した 2024.11.20 golang.tokyo #37