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
Goでのレシーバーとnilの関係 / Receiver and nil relationshi...
Search
Kentaro Kawano
July 26, 2019
Programming
0
440
Goでのレシーバーとnilの関係 / Receiver and nil relationship in Go
Kentaro Kawano
July 26, 2019
Tweet
Share
More Decks by Kentaro Kawano
See All by Kentaro Kawano
Starting Python
kawaken
0
69
Goの時刻に関するテスト/Testing time in Go
kawaken
0
80
AWS Lambda + Go
kawaken
0
75
goaのdesignをラクに書く/Write goa design easily
kawaken
0
73
Goでのチーム開発とコード管理の悩み/Team development and code management in Go
kawaken
0
74
Pyvmomiとansibleのdynamic inventory
kawaken
0
80
Other Decks in Programming
See All in Programming
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
41
27k
技術懸念に立ち向かい 法改正を穏便に乗り切った話
pop_cashew
0
1.5k
Practical Tips and Tricks for Working with Compose Multiplatform Previews (mDevCamp 2025)
stewemetal
0
130
WindowInsetsだってテストしたい
ryunen344
1
190
XSLTで作るBrainfuck処理系
makki_d
0
210
事業戦略を理解してソフトウェアを設計する
masuda220
PRO
22
6.2k
つよそうにふるまい、つよい成果を出すのなら、つよいのかもしれない
irof
1
290
ReadMoreTextView
fornewid
1
450
型付きアクターモデルがもたらす分散シミュレーションの未来
piyo7
0
800
AIネイティブなプロダクトをGolangで挑む取り組み
nmatsumoto4
0
120
今ならAmazon ECSのサービス間通信をどう選ぶか / Selection of ECS Interservice Communication 2025
tkikuc
11
2.4k
Select API from Kotlin Coroutine
jmatsu
1
180
Featured
See All Featured
Scaling GitHub
holman
459
140k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Embracing the Ebb and Flow
colly
86
4.7k
Unsuck your backbone
ammeep
671
58k
Adopting Sorbet at Scale
ufuk
77
9.4k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.8k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
Facilitating Awesome Meetings
lara
54
6.4k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Side Projects
sachag
455
42k
Speed Design
sergeychernyshev
31
1k
Six Lessons from altMBA
skipperchong
28
3.8k
Transcript
Goでのレシーバとnilの関係 2019-07-26 Umeda.go 2019 Summer Kentaro Kawano
レシーバとは • メソッド呼び出しの対象 • 値レシーバ • ポインタレシーバ
None
レシーバがnilのメソッド呼び出しはpanicになる?
None
必ずpanicになるとは限らない レシーバがnilのメソッド呼び出しはpanicになる?
メソッド式 • RecieverType.MethodName での呼び出しが可能 • user.SayHi() は (*User).SayHi(user) と同じ •
レシーバはメソッド式の第⼀引数になる
None
どんな時にpanicする?
間接参照するとき • ポインタ型の変数(値はnil)に対して • フィールドを参照するとき • 値レシーバが必要なメソッドを呼び出すとき • 変数はレシーバの型に応じて⾃動的に型が変換される
None
None
ダメな実装例
None
⼤事なところではnilチェックをちゃんとしよう
まとめ • レシーバには値レシーバとポインタレシーバがある • レシーバはメソッド式の第⼀引数 • レシーバがnilでもpanicしないケースがある • ポインタレシーバを利⽤する場合にはnilチェックする •
すべてのメソッドでチェックする必要はない(経験則