はじめに
この実験では、Rust プログラミング言語を使用した高度な例で示されるように、変数の使用方法と値の代入に基づいて変数の型を推論する機能が型推論エンジンによって強調されます。
注: 実験でファイル名が指定されていない場合、好きなファイル名を使用できます。たとえば、
main.rsを使用して、rustc main.rs &&./mainでコンパイルして実行できます。
推論
型推論エンジンはとても賢いです。初期化中に値式の型を見るだけでなく、その後変数がどのように使用されるかも見ます。ここに型推論の高度な例を示します。
fn main() {
// アノテーションのおかげで、コンパイラは `elem` が u8 型であることを知っています。
let elem = 5u8;
// 空のベクトル(拡張可能な配列)を作成します。
let mut vec = Vec::new();
// この時点でコンパイラは `vec` の正確な型を知りません。ただ、何かのベクトル (`Vec<_>`) であることだけを知っています。
// `elem` をベクトルに挿入します。
vec.push(elem);
// ああ!今やコンパイラは `vec` が `u8` のベクトル (`Vec<u8>`) であることを知っています
// TODO ^ `vec.push(elem)` 行をコメントアウトしてみてください
println!("{:?}", vec);
}
変数の型アノテーションは不要でした。コンパイラもプログラマも満足しています!
まとめ
おめでとうございます!あなたは推論実験を完了しました。あなたの技術を向上させるために、LabEx でさらに多くの実験を練習できます。