Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Go1.24 Release Party Goのiterを更に使いこなそう

maito1201
February 26, 2025
68

Go1.24 Release Party Goのiterを更に使いこなそう

https://gocon.connpass.com/event/345795/ での発表資料です

maito1201

February 26, 2025
Tweet

Transcript

  1. そもそもiteratorとは ChatGPTにまとめてもらった range over func は、Go 1.23で導入された新機能であり、 関数を直接 range の対象とすることで任意のシーケンスを統一的に反復処理できる仕組みです。

    従来、スライスやマップ、チャネルには range が使えましたが、 独自データ構造には統一的な方法がなく、ライブラリごとに異なる実装が必要でした。 この課題を解決するため、標準化されたイテレーション手法として range over func が提案・実装され、より簡潔 で可読性の高いコードが書けるようになりました。
  2. Go1.21 そもそもiteratorとは x := range の右辺にできる slice, map, channel x

    := range の右辺にできない int, その他全て Go1.22 x := range の右辺にできる slice, map, channel, int x := range の右辺にできない その他全て Go1.23 x := range の右辺にできる slice, map, channel, int, iter.Seq[type] x := range の右辺にできない 無いと言えなくもない 図で整理