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の文字列置換とその実装
Search
po3rin
July 14, 2020
Programming
1
420
Goの文字列置換とその実装
文字列置換が func Replace と func (*Replacer) Replace の2つの標準機能のアルゴリズムやデータ構造の違いからなぜ2つあるのかを理解しよう。
po3rin
July 14, 2020
Tweet
Share
More Decks by po3rin
See All by po3rin
LLMは麻雀を知らなすぎるから俺が教育してやる
po3rin
3
2k
M3におけるCI/CDパイプラインを新鮮に保つ仕組み
po3rin
0
370
Go Templateを使った フロントエンド開発を採用した 経緯と所感
po3rin
1
350
検索基盤移行時の思考
po3rin
0
4.3k
Go1.19で採用された Pattern-defeating Quicksort の紹介
po3rin
7
6.1k
Elasticsearchを負荷から守るesguard
po3rin
0
310
Sudachi×Elasticsearchへの移行と医療検索システム精度改善
po3rin
1
940
eskeeperを使ったファイル定義によるindex管理
po3rin
2
520
M3 情報検索/推薦論文輪読会 ~SIGIR祭~ (SIGIR2021: Session 6D – IR Models)
po3rin
0
130
Other Decks in Programming
See All in Programming
Jakarta EE Meets AI
ivargrimstad
0
620
『リコリス・リコイル』に学ぶ!! 〜キャリア戦略における計画的偶発性理論と変わる勇気の重要性〜
wanko_it
1
320
#QiitaBash TDDで(自分の)開発がどう変わったか
ryosukedtomita
1
350
AIコーディングエージェント全社導入とセキュリティ対策
hikaruegashira
16
9.5k
画像コンペでのベースラインモデルの育て方
tattaka
3
1.4k
AIのメモリー
watany
13
1.3k
DataformでPythonする / dataform-de-python
snhryt
0
160
物語を動かす行動"量" #エンジニアニメ
konifar
12
3.6k
Gemini CLIの"強み"を知る! Gemini CLIとClaude Codeを比較してみた!
kotahisafuru
3
950
JetBrainsのAI機能の紹介 #jjug
yusuke
0
190
技術的負債で信頼性が限界だったWordPress運用をShifterで完全復活させた話
rvirus0817
0
690
Android 15以上でPDFのテキスト検索を爆速開発!
tonionagauzzi
0
190
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
KATA
mclloyd
32
14k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
6k
Practical Orchestrator
shlominoach
190
11k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Bash Introduction
62gerente
614
210k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
30
2.2k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
1k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.6k
A better future with KSS
kneath
239
17k
Gamification - CAS2011
davidbonilla
81
5.4k
Transcript
(Pͷจࣈྻஔͱͦͷ࣮ 'VLVPLBHP +VMZ CZQPSJO (PTUSJOHSFQMBDFNFOUBOEJUTJNQMFNFOUBUJPO
pon ( @po3rin )
Introduction \
(PʹΑΔจࣈྻஔਖ਼نදݱΛൈ͍ͯ̎ͭͷํ๏͕ఏڙ͞Ε͍ͯΔ 3FQMBDFJO(P
GVOD3FQMBDF GVOD 3FQMBDFS 3FQMBDF 3FQMBDFJO(P
จࣈྻஔ͕GVOD3FQMBDFͱGVOD 3FQMBDFS 3FQMBDFͷ̎ͭ͋Δͷ͔ʁ ෦ͷΞϧΰϦζϜσʔλߏͷҧ͍͔Βͳͥͭ͋Δͷ͔Λཧղ͠Α͏ɻ 3FQMBDFJO(P
func Replace \
࣮GVOD3FQMBDFTUSJOHT*OEFY͑͋͞ΕΈཱͯΕΔɻ GVOD3FQMBDF
TUSJOHT*OEFYTͷத͔ΒTVCTUS͕࠷ॳʹग़ݱ͢ΔҐஔΛฦ͢ GVOD3FQMBDF
ӈΤοδέʔεΛམͱͨ͠ίʔυɻ <>CZUFͱDPQZͱTUSJOHT*OEFYΛۦ ͍ͯ͠Δͷ͕Θ͔Δ GVOD3FQMBDF
GVOD3FQMBDF͕ಡΜͰ͍Δ TUSJOHT$PVOUTUSJOHT*OEFYʹґଘ ͍ͯ͠Δɻ GVOD3FQMBDF
ͭ·ΓGVOD3FQMBDFTUSJOHT*OEFY͑͋͞ΕΈཱͯΕΔɻ GVOD3FQMBDF
TUSJOHT*OEFY#SVUFGPSDF͘͠3BCJOLBSQͰTVCTUSͷҐஔΛಛఆ͍ͯ͠Δɻ ৄ͍͠ղઆڈͷΞυϕϯτΧϨϯμʔʹߘͨ͠ͷͰੋඇʂ IUUQTQPSJODPNCMPHHPSBCJOLBSQ GVOD3FQMBDF
࣮GVOD3FQMBDFTUSJOHT*OEFY͑͋͞ΕΈཱͯΕΔɻ TUSJOHT*OEFY࠷ճݺͿ ग़ݱճͷऔಘʹݺͼग़͢ ஔॲཧ࣌ʹͦͷճݺͼग़͢ TUSJOHT*OEFY#SVUFGPSDF͘͠3BCJOLBSQΞϧΰϦζϜΛར༻͍ͯ͠Δ GVOD3FQMBDFͷ·ͱΊ
func (*Replacer) Replace \
GVOD 3FQMBDFS 3FQMBDF͕ੜ͍͑ͯΔSͰ෦࣮ΛೖΕସ͑ΔͨΊʹSFQMBDFS JOUFSGBDFͰநԽ͍ͯ͠ΔɻPMEOFXޙͰৄ֬͘͠ೝ͠·͕͢ɺஔ͍ͨ͠จࣈྻͷϖ ΞͷϦετΛอ࣋͠·͢ɻ GVOD 3FQMBDFS 3FQMBDF
3FQMBDFSJOUFSGBDFΛ࣮͢Δίϯϙ δοτܕछྨɻVTFSʹ͞ΕͨҾʹ Αͬͯग़͚͠Δ GVOD 3FQMBDFS 3FQMBDF
ஔϖΞΛ֨ೲ͢ΔPMEOFXʹ࠷దͳSFQMBDFS͕બΕΔ GVOD 3FQMBDFS 3FQMBDF
ࠓճΑΓҰൠతͳSFQMBDFSͰ͋ΔHFOFSJD3FQMBDFSΛݟ͍ͯ͘ɻ෦ͰUSJF/PEFͳΔͷ͕͋Δɻ GVOD 3FQMBDFS 3FQMBDF
BY BZ CDCD Y YZ B C Y Y
Z DCD Z (PͰTUSJOHTύοέʔδͰஔʹ͏5SJF͕࣮͞Ε͍ͯΔ 5SJFߏங $PNQMFUF,FZ /PEF 5SJF
FF B C Y Y Z DCD Z (Pͷ5SJFͰ$PNQMFUF,FZʹஔઌͷจࣈྻΛ֨ೲ͍ͯ͠Δ
$PNQMFUF,FZ /PEF 5SJF BB CC DD EE
ԼهͷྫͰ3FQMBDFͷҾͷจࣈྻʮXSJUFT(PMBOHBOE $MBOHʯΛҰจࣈͣͭ5SJFΛͬͯݕূ͍ͯ͘͠ɻ5SJFͰூͬͯ ͍ͬͯҰக͠ͳ͔ͬͨ࣍ͷ-PPL6QͰඈ͢ɻ $ ( MBOH PMBOH $ (P
5SJF
5SJFΛMPPLVQ͍ͯ͠Δ 8SJUF4USJOHͰΘ͔Δ͕ɺෳͷஔ ϖΞ͕͋ͬͯରจࣈྻશମ ͷࠪճͰऴΘΔɺ 5SJF
Ҿ࣍ୈͰSFQMBDFSΛ͍͚͍ͯΔɻ HFOFSJD3FQMBDFS෦Ͱ5SJFΛར༻͍ͯ͠Δɻ ஔϦετ͕ෳ͋ͬͯରจࣈྻͷࠪճͰࡁΉ GVOD 3FQMBDFS 3FQMBDFͷ·ͱΊ
Conclusion \
෦ߏΛΔͱԾઆཱ͕ͯΕΔ ͜͜·Ͱͷ͕ࣝ͋ΕͲͪΒΛ͑ྑ͍͔ɺͲ͏͑ྑ͍ͷ͔ͷԾઆཱ͕ͯΕ·͢ɻ ஔϖΞ͕̍ͭͳΒ5SJFΛߏங͢Δίετ͕͋ΔͷͰ3FQMBDFͰेͰͳ͍͔ʁ ஔϖΞ͕ଟ͍ͳΒจࣈྻશମͷ͕ࠪճͰ͓ΘΔ3FQMBDFSΛ͏͖Ͱ ஔରͷจࣈྻ͕͍PSଟ͍ͱ5SJFߏஙʹ͕͔͔࣌ؒΔͷͰJOJUͰݺͿ͖Ͱʁ ରจࣈྻͷ͕͞ࢧతͳΒࠪҰճͷ3FQMBDFͷํ͕ྑ͍ʁ
GVOD3FQMBDFͱGVOD 3FQMBDFS 3FQMBDFͷ෦࣮Λগ͠ղઆͨ͠ ࣅͨײ͡ͷ͕ؔ͋ͬͯ෦࣮ΛݟΔͱશવҧ͏ɻ ෦ͷΞϧΰϦζϜσʔλߏ͕Θ͔ΔͱύϑΥʔϚϯεଌఆͷ݁Ռͷೲಘ͕ มΘΔɻ ·ͱΊ
Appendix \
QPOͷߟ͑ΔίʔυϦʔσΟϯάͷ5JQT ·ͣΤοδέʔεແࢹ ෳࡶͳ෦ؔ(P1MBZHSPVOEʹίϐϖͯ֓͠ܗΛัΒ͑Δ