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
ダーツの旅で_説明するポインタ.pdf
Search
ミカイ
November 07, 2024
0
7
ダーツの旅で_説明するポインタ.pdf
【東京/神田】 WebエンジニアオフラインLT会&交流会
2024/09/07
https://connpass.com/event/326925/
ミカイ
November 07, 2024
Tweet
Share
More Decks by ミカイ
See All by ミカイ
成長するには「重要 VS 緊急」を意識しよう
junmikai
0
1
LTのテーマ決めは「多数派」を意識しよう ~ LT年40回登壇した件~
junmikai
0
0
目標は「めいそう」が大事。漢字はどう書く?
junmikai
2
11
技術選定で迷ったら『日常』を思い出そう! 〜考え方の新発見〜
junmikai
0
51
今年最も「覚醒」したコーディングテストの舞台裏
junmikai
0
8
フリーランスから正社員に戻ったお話し
junmikai
0
9
面接で価値観が変わった件
junmikai
0
12
SQLを克服する1冊
junmikai
0
4
美と機能のバランス ~フロントエンジニアに必要なUI・UXセンス~
junmikai
0
3
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
33
3k
Git: the NoSQL Database
bkeepers
PRO
427
64k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
The World Runs on Bad Software
bkeepers
PRO
65
11k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
Fireside Chat
paigeccino
34
3.1k
Building a Scalable Design System with Sketch
lauravandoore
460
33k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
48
2.2k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
159
15k
Embracing the Ebb and Flow
colly
84
4.5k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.3k
Product Roadmaps are Hard
iamctodd
PRO
49
11k
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
ご清聴ありがとうござ います!