タイムテーブル 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を読んで、設計の背景を探るのが好き。