$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ダーツの旅で_説明するポインタ.pdf
Search
ミカイ
November 07, 2024
0
24
ダーツの旅で_説明するポインタ.pdf
【東京/神田】 WebエンジニアオフラインLT会&交流会
2024/09/07
https://connpass.com/event/326925/
ミカイ
November 07, 2024
Tweet
Share
More Decks by ミカイ
See All by ミカイ
今からフロントエンドを0から勉強するならSvelteもありかも
junmikai
0
65
tsoaはいいぞ!APIドキュメントを自動生成!
junmikai
0
35
生成AI活用はHOWが大事な理由
junmikai
0
150
2025年の抱負: フリーランスから 正社員に戻るので 組織に貢献します!
junmikai
0
92
Chakra UI v3にバージョンアップしてほぼ別物になった件
junmikai
0
860
LTのテーマ決めは「多数派」を意識しよう ~ LT年40回登壇した件~
junmikai
0
19
成長するには「重要 VS 緊急」を意識しよう
junmikai
0
13
LTのテーマ決めは「多数派」を意識しよう ~ LT年40回登壇した件~
junmikai
0
30
目標は「めいそう」が大事。漢字はどう書く?
junmikai
2
46
Featured
See All Featured
Raft: Consensus for Rubyists
vanstee
140
7.2k
KATA
mclloyd
PRO
32
15k
Reflections from 52 weeks, 52 projects
jeffersonlam
355
21k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
1
80
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.8k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
120
20k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
54k
Become a Pro
speakerdeck
PRO
30
5.7k
Making the Leap to Tech Lead
cromwellryan
135
9.6k
The Language of Interfaces
destraynor
162
25k
Transcript
ダーツの旅で 説明するポインタ 三海 純(ミカイジュン)
ミカイ ジュン • フリーランスエンジニア • 趣味: もくもく会、アニメ、ネット麻雀(雀魂)
• 好きな有名人 ◦ 後藤 ひとり ◦ 千早 愛音 ◦ 陸八魔アル ◦ 八木 唯
キャリア • 現在 : フリーランス(自社開発) ◦ Next.jsの新規開発とバックエンドを担当 •
2022/03 - 2023/09: 正社員(自社開発) ◦ バックエンドはPython / Nest.js(Node.js) ◦ フロントエンドはReact.jsとNext.js • 2020/06 - 2022/02: 正社員(受託企業) ◦ Vue.js/Nuxt.jsをメイン
今回お話しすること プログラミングの ポインタ に関して
package main import "fmt" func main() { blueArrow, redArrow :=
42, 2701 blueArrowMap := &blueArrow *blueArrowMap = 21 blueArrowMap = &redArrow // blueArrowMap: 0xc000104048 fmt.Println("blueArrowMap:", blueArrowMap) // &blueArrowMap: 0xc000108038 fmt.Println("&blueArrowMap:", &blueArrowMap) // *blueArrowMap: 2701 fmt.Println("*blueArrowMap:", *blueArrowMap) }
あるある? Java、C#、Perlなど 経験したことがない エンジニアにとって ポインタは難しい
「:」とか「&」ってなんやねん
というわけで? ポインタをダーツで解説!
None
2710号 42号 ※ここの数字は位置ではなくダーツの名前だと思ってください func main() { blueArrow, redArrow := 42,
2701
2710号 42号 住所: 0xc000104048(以降 島根県) 住所: 0xc000104040(以降 石川県) blueArrow, redArrow
:= 42, 2701 // blueArrow: 42 fmt.Println("blueArrow:", blueArrow) // &blueArrow: 0xc000104040(石川県) fmt.Println("&blueArrow:", &blueArrow) // redArrow: 2701 fmt.Println("redArrow:", redArrow) // &redArrow: 0xc000104048(島根県) fmt.Println("&redArrow:", &redArrow) 普通の値に &をつけると住所が取得できる
青い矢の住所が載っている 2710号 42号 func main() { blueArrow, redArrow := 42,
2701 blueArrowMap := &blueArrow
青い矢の住所が載っている 42号 blueArrow, redArrow := 42, 2701 blueArrowMap := &blueArrow
// blueArrowMap: 石川県 fmt.Println("blueArrowMap:", blueArrowMap) // &blueArrowMap: 0xc000108038( 東京都) fmt.Println("&blueArrowMap:", &blueArrowMap) // *blueArrowMap: 42 fmt.Println("*blueArrowMap:", *blueArrowMap) - 地図本体は参照先 (青い矢)の住所(16進数) - &をつけると本体の住所 - *をつけると参照先 (青い矢)の値
地図の青い矢の名前を変えましょう 2710号 21号 func main() { blueArrow, redArrow := 42,
2701 blueArrowMap := &blueArrow *blueArrowMap = 21
21号 住所: 石川県 blueArrow, redArrow := 42, 2701 blueArrowMap :=
&blueArrow *blueArrowMap = 21 // blueArrow: 21 fmt.Println("blueArrow:", blueArrow) // &blueArrow: 石川県 fmt.Println("&blueArrow:", &blueArrow) 変数に*をつけて定義しなおすと 本体(青ダーツ矢 )の値も変わる
2710号 21号 これからは赤い矢を見ましょう blueArrow, redArrow := 42, 2701 blueArrowMap :=
&blueArrow *blueArrowMap = 21 blueArrowMap = &redArrow
2710号 21号 住所: 島根県 blueArrow, redArrow := 42, 2701 blueArrowMap
:= &blueArrow *blueArrowMap = 21 blueArrowMap = &redArrow // blueArrowMap: 島根県 fmt.Println("blueArrowMap:", blueArrowMap) // &blueArrowMap: 東京都 fmt.Println("&blueArrowMap:", &blueArrowMap) // *blueArrowMap: 2701 fmt.Println("*blueArrowMap:", *blueArrowMap) - blueArrowMap = &redArrowで参照先を変更 - &をつけると本体の住所 (前と変わらない ) - *をつけると参照先 (赤い矢)の値が出力
といった感じで簡単に 解説してみました
一回の説明じゃわからない?
None
None
ご清聴ありがとうござ います!