BT

Rust 1.20、関連定数などを追加

| 作者: Sergio De Simone フォローする 17 人のフォロワー , 翻訳者 sasai フォローする 0 人のフォロワー 投稿日 2017年9月27日. 推定読書時間: 2 分 |

原文(投稿日:2017/09/08)へのリンク

Rust 1.20には、関連定数、ライブラリの安定化、Cargoのクレデンシャル隠蔽改善などが含まれている。

Rust 1.20では、トレイト、構造体、列挙型に関連した定数を定義できる。たとえば、次のスニペットは、特定のインスタンスに関連しないID定数を定義しており、Struct::IDとして使うことができる。

struct Struct;

impl Struct {
    const ID: u32 = 0;
}

トレイトの関連定数を定義するとき、その値を定義する必要はなく、具体的なトレイトの実装で行うことができる。

trait Trait {
    const ID: u32;
}

struct Struct;

impl Trait for Struct {
    const ID: u32 = 5;
}

加えて、Rust 1.20では、マクロに影響を及ぼす多数のバグが修正されている。具体的にあげると、トークンがフラグメント指定子にマッチ可能か予測しようとしていたところだ。structs内の型変換の改善LLVM WebAssemblyバックエンドの有効化エラーメッセージの改善など、Rustコンパイラも改善されている。

標準ライブラリには、多数の改善と安定化がなされている。

  • unimplemented!マクロに参考となるメッセージを指定できるようになる。
  • minmaxがRustで書き直された
  • スタックプローブの提供により、ランタイム保証が改善された。これはスタックオーバーフローをうっかり無視する代わりに、セグメンテーションフォルトを引き起こす。カーネルの脆弱性を修正するために導入されたLinuxのスタックガードとの統合が改善された。
  • slice::sort_unstable_by_keyslice::sort_unstable_byslice::sort_unstableにより、不安定なソート関数が使えるようになった。不安定なソートとは、複数回ソートした時に、同値の要素が常に同じ順番になることを保証しないソートのことで、通常、コードはより高速に簡単になる。

最後に、RustのパッケージマネージャCargoは、crates.io認証トークンを~/.cargo/credentialsという別ファイルに保存するようになった。これにより、他のユーザーのアクセスからトークンを適切に保護することができる。

Rust 1.20の新機能の詳細を知りたければ、必ずリリースノートに目を通そう。

 
 

Rate this Article

Adoption Stage
Style
 
 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

特集コンテンツ一覧

.NETの派生を理解する

Wayne Citrin 2018年7月18日 午前3時44分

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT