タグ

ブックマーク / zenn.dev/team_soda (2)

  • Go1.23のイテレータを動かして学ぶ

    はじめに(おことわり) Goの次期バージョンである1.23でイテレータが導入されるようなので触ってみます。 今回の調査で使うGoのバージョンは1.23rc1です。公式ドキュメントからの情報に基づいていますが、RC版ですので、正式リリース時には変更が入っている可能性がありますので、注意が必要です。 イテレータとは イテレータは、連続したデータを1つずつ順番に処理していくための仕組みです。 イテレータをを使うと、スライスを使わずにシーケンシャルなデータを扱うことができます。 Goのイテレータは、コールバック関数を受け取る関数です。返り値はありません。コールバック関数を呼び出してデータを1つずつ渡していきます。 Goのイテレータ関数は次のようなシグネチャで定義されます。コールバック関数は慣習としてyieldと名付けられます。 コールバック関数は引数を1つ受け取るものと、2つ受け取るものがあります

    Go1.23のイテレータを動かして学ぶ
  • Goのビルドタグの書き方が// +buildから//go:buildに変わった理由

    ざっくり言うと // +buildは、一般的な&&や||を使う論理式の書き方じゃないので分かりにくかった 複数行書くこともできたので暗黙的な論理演算になり、意図しないビルド条件になることがあった だから、より身近で明確な書き方ができる//go:buildへ置き換えることになった(記述位置の条件とかも見直してる) Go1.17でビルドタグの書き方が変わることがアナウンスされた 2021年8月のGo1.17から//go:buildが使えるようになりました。 後でも触れるのですが、もちろん後方互換性が維持されているので// +buildも使えます。 // +buildだけが指定されているファイルに対してgo fmtを実行すると、同等の//go:buildがすぐ上の行に追加されるようになっています。 // +buildはいくつかの問題を抱えていた もともと// +buildに指定できるのはOS名か

    Goのビルドタグの書き方が// +buildから//go:buildに変わった理由
  • 1