Back to Timetable
range over func 2年間の軌跡 — Issue #56413 はGoのエコシステムをどう変えたか
「コレクションを走査する」という、どのGoコードにも存在する処理。なのに、filepath.Walk・sync.Map.Range・flag.Visitはすべてシグネチャが異なります。なぜGoには長年、統一されたイテレーション方法がなかったのか。そして2022年にGitHubに立てられたDiscussion#56413から始まった議論が、Go 1.23の range over func として結実するまでに何が起きたのか。 本セッションでは、IssueとPRの議論を丹念に追うことで見えてくる「設計の決断」と、リリースから2年間でGo本体・標準ライブラリ・OSSエコシステムが実際にどう変化したかを、Before/Afterのコードで具体的に示します。 業務でまだ使えていない方にこそ聞いてほしいセッションです。 変化の全体像を知ることで、「自分のコードのどこに使えるか」が見えてくるはずです。 【扱う内容】 ・Before: なぜ統一されたイテレーション方法がなかったか ・設計の決断: なぜinterfaceではなく関数型になったのか ・After(1): 標準ライブラリに加わったiter.Seq対応API ・After(2): OSSエコシステムの2年間の変化と現在地 ・実践: []T返しとiter.Seqの使い分け判断基準
國分 竜二 國分 竜二

合同会社DMM.comオンラインサロン開発部ATG

合同会社DMM.comのオンラインサロン開発部でバックエンドエンジニアとしてGoを書いている。社外向けGoコミュニティ勉強会「DMM.go」の運営も担当。 気になったGoのIssueやProposalを読んで、設計の背景を探るのが好き。