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言語】range
Search
Tomoki Ota
August 30, 2024
Programming
0
39
【Go言語】range
Tomoki Ota
August 30, 2024
Tweet
Share
More Decks by Tomoki Ota
See All by Tomoki Ota
アーキテクチャの価値
tomo1227
0
60
アーキテクチャとビジネスロジック
tomo1227
0
69
【Go言語】テスト
tomo1227
0
40
【Go言語】クロージャ
tomo1227
0
220
【Go言語】イテレータ
tomo1227
0
49
【Go言語】エラーハンドリング
tomo1227
0
47
AIに淘汰されないようにするには?
tomo1227
0
42
【Go言語】break
tomo1227
0
49
【Go言語】反復処理
tomo1227
0
28
Other Decks in Programming
See All in Programming
[初登壇@jAZUG]アプリ開発者が気になるGoogleCloud/Azure+wasm/wasi
asaringo
0
110
Blueskyのプラグインを作ってみた
hakkadaikon
1
460
從零到一:搭建你的第一個 Observability 平台
blueswen
1
750
Perplexity Slack Botを作ってAI活用を進めた話 / AI Engineering Summit プレイベント
n3xem
0
600
GoのWebAssembly活用パターン紹介
syumai
3
8.5k
Elixir で IoT 開発、 Nerves なら簡単にできる!?
pojiro
1
100
ワイがおすすめする新潟の食 / 20250530phpconf-niigata-eve
kasacchiful
0
290
複数アプリケーションを育てていくための共通化戦略
irof
9
3.6k
Beyond Portability: Live Migration for Evolving WebAssembly Workloads
chikuwait
0
290
Datadog RUM 本番導入までの道
shinter61
1
140
Gleamという選択肢
comamoca
6
640
Parallel::Pipesの紹介
skaji
2
900
Featured
See All Featured
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.3k
Art, The Web, and Tiny UX
lynnandtonic
299
21k
A Tale of Four Properties
chriscoyier
159
23k
KATA
mclloyd
29
14k
Why Our Code Smells
bkeepers
PRO
337
57k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
30
2.1k
Music & Morning Musume
bryan
46
6.6k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
228
22k
The World Runs on Bad Software
bkeepers
PRO
68
11k
Transcript
Tomoki Ota ʲGoݴޠʳrange
Goʹɺdowhileͳ͘ for͔͠ଘࡏ͠ͳ͍ɻ
rangeͱʁ ͷίϐʔ rangeͷධՁ rangeʹ͓͚ΔϙΠϯλ ΞδΣϯμ 3
rangeͱʁ
rangeͱʁ 5 ༷ʑͳσʔλߏʹରͯ͠ɺ෮ॲཧΛߦ ͏ͷʹศརͳํ๏ ΠϯσοΫεऴྃঢ়ଶΛѻ͏ඞཁ͕ͳ͍
rangeͱʁ 6 range͕͍͔ʹͯ͠ΛׂΓͯΔ͔Λ͍ͬͯͳ͍ͱ όάΛى͜͢ݪҼͱͳΓ͔Ͷͳ͍ʂ
จࣈྻ ྻ ྻͷϙΠϯλ εϥΠε Ϛοϓ ड৴νϟωϧ rangeͰ͑Δσʔλߏ
rangeͷ͍ํ
rangeͷ͍ํ
rangeͷ͍ํ
for _ := range s {} ίϯύΠϧΤϥʔ = Λ͓͏ʂ rangeͷ͍ํ
ͷίϐʔ
ͷίϐʔ 13 [{1100} {1200} {1300}]ʹͳΒͳ͍ʂ
GOͰೖ͞ΕΔͷ શͯίϐʔͰ͋Δ
ͷίϐʔ 15 ߏମΛฦؔ͢ͷ݁ՌΛೖ͢Δͱɺͦͷߏମͷίϐʔ͕ߦΘΕΔ ϙΠϯλΛฦؔ͢ͷ݁ՌΛೖ͢ΔͱɺϝϞϦΞυϨεͷίϐʔ͕ߦΘΕΔ (64bitΞʔΩςΫνϟͰΞυϨε64bitͱͳΔɻ)
ͷίϐʔ 16 εϥΠεͷΠϯσοΫεΛ༻͍ͯཁૉʹΞΫηε͢Δ ैདྷͷfor range ϙΠϯλΛ༻͢Δ
εϥΠεͷΠϯσοΫεΛ༻͍ͯཁૉʹΞΫηε͢Δ ैདྷͷfor 17
εϥΠεͷΠϯσοΫεΛ༻͍ͯཁૉʹΞΫηε͢Δ range 18
ϙΠϯλΛ༻͢Δ 19
ϙΠϯλΛ༻͢Δ 20 εϥΠεܕΛมߋ͢Δඞཁ͕͋Δ͕ɺৗʹՄೳͱݶΒͳ͍ ੑೳΛॏࢹ͢Δ߹ɺϙΠϯλͷεϥΠεΛ෮ॲཧ͢Δ͜ͱ༧ଌՄೳੑʹ͔͚ΔͨΊ CPUʹͱͬͯޮ͕ѱ͘ͳΔՄೳੑ͕͋Δ
rangeͷධՁ
rangeͷධՁ 22 range͕ࣜඞਢ
23 for i, v := range exp rangeͷධՁ
24 rangeͷධՁ
25 rangeͷධՁ
26 rangeͷධՁ rangeΛͬͨ࣌ʹ༩͑ΒΕ͕ͨࣜ ։࢝લʹ1͚ͩධՁ͞ΕΔɻ srange͕͏Ұ࣌มʹίϐʔ͞ΕΔɻ
27 rangeͷධՁ(νϟωϧ) rangechΛධՁͯ͠ɺҰ࣌มʹίϐʔ͠ɺ ͦͷνϟωϧͷཁૉʹରͯ͠ɺ෮ॲཧΛߦ͏ɻ ch = ch2ʹؔΘΒͣɺrangech2Ͱͳ͘ ch1ʹରͯ͠ɺ෮ॲཧΛଓ͚Δɻ ch =
ch2ɺchʹ2ͭͷνϟωϧΛೖ͍ͯ͠ΔͷͰɺ ͜ͷίʔυͷޙͰclose(ch)Λݺͼग़͢ͱɺ1ͭͰͳ͘ɺ 2ͭͷνϟωϧ͕Ϋϩʔζ͞ΕΔɻ
28 rangeͷධՁ(ྻ)
29 rangeͷධՁ(ྻ)
30 ࠷ޙͷཁૉͷ࣮ࡍͷͷදࣔํ๏ ΠϯσοΫεΛ͏ํ๏ ྻͷϙΠϯλΛ͏ํ๏
31 ΠϯσοΫεΛ༻͢Δ
32 ྻͷϙΠϯλΛ༻͢Δ
rangeʹ͓͚ΔϙΠϯλ
rangeʹ͓͚ΔϙΠϯλ 34 ΩϟογϡʹཁૉΛૠೖ͢ΔϩδοΫΛ࣮͍ͯ͠Δ
35 rangeʹ͓͚ΔϙΠϯλ
36 rangeʹ͓͚ΔϙΠϯλ
37 rangeʹ͓͚ΔϙΠϯλ
38 ղܾํ๏1 ϩʔΧϧมΛ༻͢Δํ๏
39 ղܾํ๏2 εϥΠεͷΠϯσοΫεΛͬͯɺ֤ཁૉΛࢀর͢ΔϙΠϯλΛ֨ೲ͢Δํ๏