Go 1.22 はすでにリリースされています。その新機能と改善点について学びましょう

ゴーランド

Go は、C 構文に着想を得た静的型付けを備えた、コンパイル済みの並行プログラミング言語です。

の新しいバージョン Go 1.22 はバージョン 1.21 から XNUMX か月後に登場します。 ツールセット、ランタイム、最適化の改善、コンパイラの改善、ライブラリに対する多くの注目すべき変更が含まれています。

囲碁を知らない人のために、これはこうであると言わなければなりません。Googleが開発しているプログラミング言語です コンパイル言語の高いパフォーマンスと、コードの記述の容易さ、開発速度、エラーからの保護などのスクリプト言語などの利点を組み合わせたハイブリッド ソリューションとして、コミュニティの参加を得ています。

Go1.22の主な新機能

Go 1.22 から導入されたこの新しいバージョンでは、 「for」ループ内の 2 つの変更として 以前は、for ループで宣言された変数は一度作成されていました。 反復ごとに更新されました。 Go 1.22 では、ループの各反復で新しい変数が作成されます 偶発的な共有エラーを避けるため、さらに for ループに範囲関数の実験的サポート (GOEXPERIMENT=rangefunc) を追加しました。 これにより、関数をイテレータとして指定できます。 for ループに関する長年の問題を解決しました これにより、コルーチン呼び出しが反復間でループ変数を共有するようになりました。さらに、for ループで整数をループできるようになりました。例えば:

package main import "fmt" func main() { for i := range 10 { fmt.Println(10 - i) } fmt.Println("go1.22 が離陸します!") }

この新しいバージョンのもう 1 つの注目すべき変更点は、 ディレクトリを使用する機能 «ベンダー« これにはワークスペースの依存関係が含まれます。さて、コマンド ` で作成されたこのディレクトリを使用できます。ベンダーに働きに行く` ビルドコマンドで使用されます `が設定されている場合-モッド` で «ベンダー«、これはディレクトリが存在する場合のデフォルト値です«ベンダー» ワークスペース内。

の機能に注意することが重要です。 `取ってきます` はモードのモジュール外ではサポートされなくなりました ゴーパス 継承されますが、次のような他のビルド コマンド 「ビルドに行く」と「テストに行く」 彼らは、レガシー GOPATH プログラムのために無期限に働き続けます。さらに、コマンド 「mod initに行く」 他の « の構成ファイルからモジュール要件をインポートしようとしなくなりました。「販売」 (Gopkg.lock など)。

Go 1.22 では、 新しいパッケージ io/安全でない ポインタと安全でないメモリを操作する機能を提供します。。このパッケージは、ポインタを安全な型と安全でない型の間で変換するためのメソッドと、境界チェックを行わずにメモリ コピー操作を実行するためのメソッドを提供します。

p の結果に基づいてコンパイラの最適化を含む作業が続けられました。PGOコードプロファイリング、 それはそれです コンパイラは非仮想化ツールを使用して間接呼び出しを置き換えるようになりました。 拡張されたインライン ブロック実行を使用したさまざまなメソッド。 PGO を有効にすると、追加された変更により、ほとんどのプログラムのパフォーマンスが 2% ~ 14% 向上しました。

のバージョンでは Windows の場合、ライブラリをリンクまたはロードするプログラム を使って構築しましょう -buildmode=c-archive o -buildmode=c-shared Event Logging Windows (ETW) API を使用できるようになりました 新しいパッケージを通じて ランタイム/トレース y トレースフック、Go イベント トレース収集プロトコルを ETW プロバイダーとして実装します。

目立つ他の変更のうち:

  • コマンド テストに行く - カバー 独自のテスト ファイルを持たない対象パッケージのカバレッジ概要を出力するようになりました。
  • OS/実行、コンテキスト属性を定義する機能が追加され、実行されたコマンドの作業ディレクトリ、環境変数、入出力ファイル記述子などの値を設定できるようになりました。
  • 実行時のメモリ管理が最適化され、ほとんどのアプリケーションでパフォーマンスが 1 ~ 3% 向上し、メモリ消費量が 1% 削減されました。
  • エルパケテ ネット/http、機能が追加されました アイドル接続を閉じる HTTP クライアントに送信し、クライアントが最近使用したアイドル状態の接続をすべて閉じます。
  • 呼び出し挿入メカニズムの改良された実験的実装 (GOEXPERIMENT=newinliner) がコンパイラーに追加されました。これは、ヒューリスティックを使用して重要な操作と重要でない操作を分離します。
  • パッケージが追加されました » 数学/ランド/v2 » 標準ライブラリへの移行。これは、より一貫性のある API を提供し、より高速なアルゴリズムを使用して擬似乱数を生成します。
  • エルパケテ net/http.ServeMux テンプレートにメソッドとマスクを指定する機能が追加されました。

最後に、もしあなたが それについてもっと知りたい、 詳細を確認できます 次のリンクで。


コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:MiguelÁngelGatón
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。