Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
【Go言語】スライス
Search
Tomoki Ota
July 05, 2024
Programming
1.8k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
【Go言語】スライス
Goのスライスについてまとめました。
【Qiita】
https://qiita.com/twrcd1227/items/989d8d553fc6913f01f3
Tomoki Ota
July 05, 2024
More Decks by Tomoki Ota
See All by Tomoki Ota
アーキテクチャの価値
tomo1227
0
130
アーキテクチャとビジネスロジック
tomo1227
0
130
【Go言語】テスト
tomo1227
0
100
【Go言語】クロージャ
tomo1227
0
350
【Go言語】イテレータ
tomo1227
0
120
【Go言語】エラーハンドリング
tomo1227
0
100
AIに淘汰されないようにするには?
tomo1227
0
110
【Go言語】range
tomo1227
0
110
【Go言語】break
tomo1227
0
110
Other Decks in Programming
See All in Programming
XP祭りでしか伝わらないフリップネタ #xpjug
murabayashi
0
120
20260828_品質と開発生産性を両立させる、AI時代のE2Eテストの考え方
magicpod
0
180
ハーネス設計入門 〜プロンプト、コンテキストの次〜
kinopeee
55
37k
LoopHub - ローカルで動く GitHub で、AI と共同開発
jugyo
1
490
PHPプロジェクトの結合バランスを可視化する #php_night
kajitack
0
230
MIZARU@SPAJAM2026 第二回予選
1901drama
0
110
『寄り添うラジオ』をAIで作る 体験価値から逆算した、会話しないUXと品質設計
theoriatec2024
3
140
Security issues being discussed on Web Platforms
petamoriken
0
500
[DroidKaigi 2026] Bring your own phones to Gradle Managed Devices
f2lk
0
110
市販E-Readerを乗っ取れ 〜Embedded Swiftで電子ペーパーガジェットを制御する〜
trickart
0
150
DynamoDBの基礎を振り返りながらベクトル検索機能を理解する
musan
3
280
GKE で Pod の見方を変えたら、スケールアウト時の挙動を真に捉えられた話
stkk
0
110
Featured
See All Featured
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
930
Making Projects Easy
brettharned
120
6.7k
Ruling the World: When Life Gets Gamed
codingconduct
0
330
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
How to make the Groovebox
asonas
2
2.4k
The browser strikes back
jonoalderson
0
1.7k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
300
Unsuck your backbone
ammeep
672
58k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
490
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
380
Transcript
Tomoki Ota ʲGOݴޠʳεϥΠε
͍͖ͳΓͰ͕͢ɺͰ͢
࣮ߦ͢ΔͱͲ͏ͳΔͰ͠ΐ͏
͑ɾɾɾ
slice1 = [0 1 2 3 4 5 6 7
8 9]ʹͳΒͳ͍
εϥΠεͷߏ 1. ྻΛ࡞͢Δɻ(ྻʹΞΫηεͰ͖ͳ͍) 2. ྻΛεϥΠε͢ΔͱɺGoͦͷطଘͷྻͷϙΠϯλʔΛऔಘ͢Δ 6
• ྻͷϙΠϯλ : ݩͱͳΔྻͷϙΠϯλɻεϥΠε ͷݩͷྻͷ࠷ॳͷཁૉΛࢦ͢ • εϥΠεͷ͞ • ༰ྔ :
ݩͱͳΔྻͷαΠζ εϥΠεͷߏ 7
͠ͱϙΠϯλ͠ • ͠ : ίϐʔͯ͠ɺத͕͍͠৽͍͠ͷΛ࡞͢Δ • ϙΠϯλ͠ : ϙΠϯλΛ͢ɻϙΠϯλ͕ࢀর͍ͯ͠Δ͕มԽ͢Εɺ͕มΘΔ ※
Goʹࢀর͠ଘࡏ͠ͳ͍ 8
͠ͱϙΠϯλ͠ •Sࢀর͠ •s[0]ϙΠϯλ͠ 9
CAPACITYʹΑΔεϥΠεͷಈ࡞ͷҧ͍ 1. capacity͕Γͳ͍ͱ͖ 2. capacity͕Γͳ͍ͱ͖(ؔ) 3. capacity͕ΓΔͱ͖ 4. capacity͕ΓΔͱ͖(ؔ) CapacityʹΑͬͯಈ࡞͕มΘΔʂ
10
CAPACITY͕Γͳ͍ͱ͖ https://go.dev/play/p/EkdgSBKwRHU
CAPACITY͕Γͳ͍ͱ͖(ؔ) https://go.dev/play/p/EaxY8RoyRjO
CAPACITY͕ΓΔͱ͖ https://go.dev/play/p/my-Z78xCeK7
CAPACITY͕ΓΔͱ͖(ؔ) https://go.dev/play/p/ntq4D75py2
εϥΠεԽ https://go.dev/play/p/ntq4D75py2 ྻɺ͘͠εϥΠε͔ΒεϥΠεΛ࡞͢Δ͜ͱ
εϥΠεԽ
εϥΠεԽ
εϥΠεԽ
εϥΠεԽ
GC εϥΠεͷ༰ྔΛ͑ͨͱ͖ɺ৽ͨͳྻΛ࡞͠·͕͢ɺ ࢀর͞Εͳ͘ͳͬͨྻGC(ΨϕʔδίϨΫλ)ʹΑͬͯղ์͞ΕΔɻ (ώʔϓ্ʹ͋Δ߹ͷΈ) 20
εϥΠεͷॳظԽͷϕετϓϥΫςΟε makeͰ͋Β͔͡ΊεϥΠεΛॳظԽ͢Δͱ͖ʹ ͞ͱ༰ྔΛলུ͢ΔͷNG 21
εϥΠεͷॳظԽͷϕετϓϥΫςΟε ࢀরݩͷྻͷ༰ྔΛ͑Δͨͼʹɺ৽͍͠ྻ(ཁૉ͕2ഒͷྻɻ ཁૉ͕1024Λ͑Δ߹25%ͣͭ૿Ճ)͕࡞ΒΕΔɻ 0→1→2→4→8→16→32→64→128→256→512→848→1280ͷΑ͏ʹ߹ܭ13ݸͷྻ͕࡞͞ΕΔ 22
εϥΠεͷॳظԽͷϕετϓϥΫςΟε ࠷ॳʹ༰ྔΛࢦఆͯ͋͛͠Δ 23
εϥΠεͷॳظԽͷϕετϓϥΫςΟε ࠷ॳʹ͞Λࢦఆͯ͠OK 24
εϥΠεͷॳظԽͷϕετϓϥΫςΟε ύϑΥʔϚϯε͞ɻ ༰ྔΛࢦఆͯ͠append͢Δํ๏ͷํ͕Մಡੑ͕ߴ͘·͍͠ 25
nilεϥΠε V.S. ۭεϥΠε ͕̌͞ͳΒɺεϥΠεۭ nilͱಉͳΒεϥΠεnil 26
nilεϥΠε V.S. ۭεϥΠε 27
nilεϥΠε V.S. ۭεϥΠε 28
nilεϥΠε V.S. ۭεϥΠε 29
nilεϥΠε V.S. ۭεϥΠε nilεϥΠεۭεϥΠεͷҰ෦Ͱ͋Δɻ εϥΠεʹཁૉؚ͕·Ε͍ͯΔ͔Ͳ͏͔len(0)Ͱผ͢Δɻ 30
nilεϥΠε V.S. ۭεϥΠε nilεϥΠεͱҧ͍ɺۭεϥΠεׂΓ͕ͯൃੜ͢ΔͷͰɺ ͕ؔεϥΠεΛฦ͢߹nilεϥΠεΛฦ͢ํ͕Α͍ɻ 31
nilεϥΠε V.S. ۭεϥΠε γϯλοΫεγϡΨʔͱͯ͠͏߹ɺ 2ͭͷ[]int(nil)Λ͏ํ͕͍͍ɻ 32
nilεϥΠε V.S. ۭεϥΠε slice3 := []int{} ॳظཁૉ͕͋Δ߹ʹΘΕΔॻ͖ํ e.g. []int{1,2,3} 33
εϥΠεͷcopy CopyɺίϐʔݩͷεϥΠεɺίϐʔઌͷεϥΠεͷཁૉ͕গͳ͍ํʹ͞Λ߹ΘͤΔ dstͷ͕͞0ɺsliceͷ͕͞3ͳͷͰɺ࠷ऴతʹdst0ʹͳΔ μϝͳྫ 34
εϥΠεͷcopy ίϐʔઌͷεϥΠεͷ͞ΛલͬͯɺίϐʔݩͷεϥΠεͱಉ͡͞ʹઃఆ͓ͯ͘͠ɻ ղܾࡦ1 35
εϥΠεͷcopy appendΛ༻͢Δ ղܾࡦ2 36
εϥΠεͷcopy slices.Clone() Λ༻͢Δ ղܾࡦ3 37
appendͷ෭࡞༻ s1ʹมߋ͕Өڹ͞Εͯ͠·͏ɻ 38
appendͷ෭࡞༻ 39
appendͷ෭࡞༻ ղܾࡦ1 ࣄલʹίϐʔ͓ͯ͘͠ɻ ແବͳίϐʔ͕ൃੜ͢Δɻ 40
appendͷ෭࡞༻ ղܾࡦ2 શεϥΠεࣜ s[low:high:max] Λ༻͢Δɻ 41
appendͷ෭࡞༻ ղܾࡦ2 42
όοϑΝͱͯ͠ͷεϥΠε 43
όοϑΝͱͯ͠ͷεϥΠε 44
εϥΠεͱϝϞϦϦʔΫ ͜ͷίʔυΛ࣮ߦͨ͠ͱ͖ʹɺ1GBͷϝϞϦ͕ফඅ͞Ε·͢ɻ 10όΠτͷϝοηʔδΛ1000ճड͚औͬͯ ࠷ॳͷ5όΠτΛอଘ͢Δίʔυ 45
εϥΠεͱϝϞϦϦʔΫ 46
ͷεϥΠε v.s. ϙΠϯλͷεϥΠε []T͔[]*TͷͲ͕͍͍ͬͪͷ͔݁Λ͍͏ͱ ΄ͱΜͲͷ߹[]Tͷํ͕༏Ε͍ͯΔɻ 47
εϥΠεͱϝϞϦϦʔΫ ղܾࡦ messageΛεϥΠεԽ͢ΔͷͰͳ͘ɺεϥΠεͷίϐʔΛ࡞͢Δ 48
εϥΠεύοέʔδ v1.21Ҏ্Ͱslices - Go PackagesΛ͑Δ ͨͩ͠ɺv1.21ͱv1.22Ҏ্ڍಈ͕ҟͳΔ 49
DELETE v1.22 v1.21 50
DELETE append copy appendͷgc 51
52