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
520
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Goでのレシーバーとnilの関係 / Receiver and nil relationship in Go
Kentaro Kawano
July 26, 2019
More Decks by Kentaro Kawano
See All by Kentaro Kawano
Starting Python
kawaken
0
140
Goの時刻に関するテスト/Testing time in Go
kawaken
0
150
AWS Lambda + Go
kawaken
0
140
goaのdesignをラクに書く/Write goa design easily
kawaken
0
130
Goでのチーム開発とコード管理の悩み/Team development and code management in Go
kawaken
0
130
Pyvmomiとansibleのdynamic inventory
kawaken
0
140
Other Decks in Programming
See All in Programming
Hatena Engineer Seminar #37「言語モデルの活用に関する研究」
slashnephy
0
520
信頼性について考えてみる(SRE NEXT 2026 miniLT)
hayama17
0
190
20260623_Loop Engineeringで自分の分身の問い合わせBotを作る
ryugen04
0
220
AI がコードを書く時代における新卒エンジニアの仕事風景 (2026) / New Graduate Engineers in the Era of AI Coding (2026)
sushichan044
0
220
yield再入門 #phpcon
o0h
PRO
0
340
ソフトウェア設計に溶けるインフラ ― AWS CDK のインフラ認識論
konokenj
2
450
【やさしく解説 設計編 #1】「ドメイン駆動」と「実装駆動」ってなに? 〜設計の考え方を、たとえ話で学ぼう〜
panda728
PRO
1
120
SREは、MCPとSRE Agentをこう使え!
kazumax55
0
150
使用 Meilisearch 建立新聞搜尋工具
johnroyer
0
150
Generative UI & AI-Assistants for Your Angular Solutions
manfredsteyer
PRO
1
180
音楽のための関数型プログラミング言語mimiumにおける多段階計算の活用
tomoyanonymous
1
330
そのテスト、説明できますか?~LWテスト戦略FW~のご紹介
nakahara
0
200
Featured
See All Featured
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
190
Building AI with AI
inesmontani
PRO
1
1.1k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
460
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
A Tale of Four Properties
chriscoyier
163
24k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
210
Are puppies a ranking factor?
jonoalderson
1
3.7k
How to Ace a Technical Interview
jacobian
281
24k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Context Engineering - Making Every Token Count
addyosmani
9
1k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
120k
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チェックする •
すべてのメソッドでチェックする必要はない(経験則