2023-09-01から1ヶ月間の記事一覧
Go言語の1.21ではslices、mapsパッケージが追加され、スライスやマップに対する操作が格段にシンプルにできるようになりました。 本記事ではそんなslicesパッケージのClone関数を手本に その実装の詳細説明と、そこから導けるジェネリクスの型制約実装におけ…
有名なGoのプロジェクト構成のパターンとしては、以下のgolang-standardsが有名です。 github.com このパターンは賛否両論ありつつも長い間多くのプロジェクトで採用されてきたのですが、Go公式のものではありません。 そして Goの公式はこれまで、プロジェ…
色々と議論を呼びそうなタイトルですが、とあるポッドキャストの会話の一部を文字起こしした記事の内容です。 原文はこちら changelog.com スピーカーの体験を元にした話によると、 XMLは場合によって使いづらいこともあるし、適していることもある。 一方、…
Go言語のLanguage ServerであるGoplsが今夏アップグレードされ、v0.12がリリースされました。 go.dev 前バージョンに比較してメモリ効率がレベルアップされています。 またファイルベースでのキャッシュで各パッケージの情報を保持するのですが、プロセスを…
Go言語では、コンパイルをより最適化するための仕組みでPGO(Profile-Guided Optimization)というものがあります。 Go1.20ではユーザにテストしてもらうためのプレビュー機能としてリリースされましたが、Go1.21では一般利用が可能となっています。 詳しいP…
8月にリリースされたGo1.21のループ処理の新仕様についての記事です。 Go1.21のリリースノートはこちら tip.golang.org Go言語のループでは for i := range ~~~ や for i := 0; i < MAX; i++ { といったような形をよく使うと思います。 ここで使ってる変数i…