Rust 1.43 プログラミング言語のリリース

公開済み システムプログラミング言語のリリース 錆1.43, Mozilla プロジェクトによって設立されました。 この言語はメモリの安全性に重点を置き、自動メモリ管理を提供し、ガベージ コレクタやガベージ コレクタを使用せずに高いタスクの並列処理を実現するツールを提供します。 ランタイム.

Rust の自動メモリ管理により、開発者はポインタ操作から解放され、解放後のメモリ アクセス、null ポインタの逆参照、バッファ オーバーランなどの低レベルのメモリ操作から生じる問題から保護されます。 プロジェクトごとにライブラリを配布し、確実にアセンブリし、依存関係を管理するためのパッケージ マネージャーが開発されています。 貨物を使用すると、プログラムに必要なライブラリをワンクリックで取得できます。 リポジトリはライブラリをホストするためにサポートされています crates.io.

メイン イノベーション:

  • マクロは、要素のフラグメントを使用して、要素を特性 (trait)、実装 (impl)、または外部ブロックのコードに変換する機能を提供します。 例えば:

    マクロルール! mac_trait {
    ($i:アイテム) => {
    特性 T { $i }
    }
    }
    マックの特徴! {
    fn foo() {}
    }

    生成につながります:

    特性 T {
    fn foo() {}
    }

  • プリミティブ、参照、バイナリ演算の型検出が改善されました。
    たとえば、以前はエラーが発生していた次のコードはコンパイルできるようになります (Rust は 0.0 と &0.0 が f32 型でなければならないと正しく判断するようになりました)。

    n: f32 = 0.0 + &0.0; とします。

  • 新しい環境変数 CARGO_BIN_EXE_{name} が Cargo に追加されました。これは統合テストのビルド時に設定され、パッケージの「[[bin]]」セクションで定義された実行可能ファイルへのフル パスを決定できるようになります。
  • If ステートメントでは、「#[cfg()]」などの属性を使用できます。
  • このライブラリは、モジュールをインポートせずに、整数型と小数型に関連する定数を直接使用する機能を提供します。 たとえば、最初に「use std::u32」と「use std::f32」を指定しなくても、すぐに u32::MAX または f32::NAN を記述することができます。
  • 新しいモジュールが追加されました プリミティブこれは、たとえばマクロを作成して型が非表示になっていないことを確認する必要がある場合に、Rust プリミティブ型を再エクスポートします。
  • API の新しい部分は、安定化されたものを含む安定化カテゴリに移されました。

    ::is_completed になると、
    f32::LOG10_2、
    f32::LOG2_10、
    f64::LOG10_2、
    f64::LOG2_10 および
    iter::once_with 。

出所: オープンネット.ru

コメントを追加します