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
91
0
Share
【Go言語】range
Tomoki Ota
August 30, 2024
More Decks by Tomoki Ota
See All by Tomoki Ota
アーキテクチャの価値
tomo1227
0
120
アーキテクチャとビジネスロジック
tomo1227
0
120
【Go言語】テスト
tomo1227
0
80
【Go言語】クロージャ
tomo1227
0
310
【Go言語】イテレータ
tomo1227
0
100
【Go言語】エラーハンドリング
tomo1227
0
83
AIに淘汰されないようにするには?
tomo1227
0
82
【Go言語】break
tomo1227
0
82
【Go言語】反復処理
tomo1227
0
61
Other Decks in Programming
See All in Programming
事業会社でのセキュリティ長期インターンについて
masachikaura
0
210
「接続」—パフォーマンスチューニングの最後の一手 〜点と点を結ぶ、その一瞬のために〜
kentaroutakeda
5
2.4k
ネイティブアプリとWebフロントエンドのAPI通信ラッパーにおける共通化の勘所
suguruooki
0
230
Rethinking API Platform Filters
vinceamstoutz
0
5.4k
仕様漏れ実装漏れをなくすトレーサビリティAI基盤のご紹介
orgachem
PRO
8
4.2k
脱 雰囲気実装!AgentCoreを良い感じにWEBアプリケーションに組み込むために
takuyay0ne
3
430
AI 開発合宿を通して得た学び
niftycorp
PRO
0
190
安いハードウェアでVulkan
fadis
1
870
夢の無限スパゲッティ製造機 -実装篇- #phpstudy
o0h
PRO
0
190
AIコードレビューの導入・運用と AI駆動開発における「AI4QA」の取り組みについて
hagevvashi
0
590
20260313 - Grafana & Friends Taipei #1 - Kubernetes v1.36 的開發雜記:那些困在 Alpha 加護病房太久的 Metrics
tico88612
0
250
Feature Toggle は捨てやすく使おう
gennei
0
400
Featured
See All Featured
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
200
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
320
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
960
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.7k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Done Done
chrislema
186
16k
How to train your dragon (web standard)
notwaldorf
97
6.6k
KATA
mclloyd
PRO
35
15k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.1k
Are puppies a ranking factor?
jonoalderson
1
3.2k
Darren the Foodie - Storyboard
khoart
PRO
3
3.1k
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 εϥΠεͷΠϯσοΫεΛͬͯɺ֤ཁૉΛࢀর͢ΔϙΠϯλΛ֨ೲ͢Δํ๏