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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Kentaro Kawano
July 26, 2019
Programming
0
490
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
110
Goの時刻に関するテスト/Testing time in Go
kawaken
0
120
AWS Lambda + Go
kawaken
0
110
goaのdesignをラクに書く/Write goa design easily
kawaken
0
110
Goでのチーム開発とコード管理の悩み/Team development and code management in Go
kawaken
0
110
Pyvmomiとansibleのdynamic inventory
kawaken
0
110
Other Decks in Programming
See All in Programming
Rust 製のコードエディタ “Zed” を使ってみた
nearme_tech
PRO
0
210
なぜSQLはAIぽく見えるのか/why does SQL look AI like
florets1
0
480
OCaml 5でモダンな並列プログラミングを Enjoyしよう!
haochenx
0
140
AI & Enginnering
codelynx
0
120
humanlayerのブログから学ぶ、良いCLAUDE.mdの書き方
tsukamoto1783
0
200
カスタマーサクセス業務を変革したヘルススコアの実現と学び
_hummer0724
0
730
Raku Raku Notion 20260128
hareyakayuruyaka
0
350
OSSとなったswift-buildで Xcodeのビルドを差し替えられるため 自分でXcodeを直せる時代になっている ダイアモンド問題編
yimajo
3
620
【卒業研究】会話ログ分析によるユーザーごとの関心に応じた話題提案手法
momok47
0
200
Best-Practices-for-Cortex-Analyst-and-AI-Agent
ryotaroikeda
1
110
Oxlintはいいぞ
yug1224
5
1.4k
そのAIレビュー、レビューしてますか? / Are you reviewing those AI reviews?
rkaga
6
4.6k
Featured
See All Featured
sira's awesome portfolio website redesign presentation
elsirapls
0
150
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
0
1.1k
How Software Deployment tools have changed in the past 20 years
geshan
0
32k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
HDC tutorial
michielstock
1
390
Claude Code のすすめ
schroneko
67
210k
Six Lessons from altMBA
skipperchong
29
4.2k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
440
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
71
Building Applications with DynamoDB
mza
96
6.9k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Music & Morning Musume
bryan
47
7.1k
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チェックする •
すべてのメソッドでチェックする必要はない(経験則