型推論について。
型推論とは、型を明示せず周辺コードから推論する機能である。
例えば、以下の二行は同じ意味になる。
let a: bool = true;
let a = true;
これにより、冗長な型の記述がなくなる。代わりに、周辺コードが複雑だと型が一目では判別できなくなる。しかし、傾向としては長所が短所を上回る。また、最近は IDE が省略された型をすぐに調べてくれる。
推論時にコードのどの範囲まで調べるかは言語により差がある。
2026 年現在の多くの言語 (C#, Java, TypeScript など) では文を追わない。そのため、変数型の型推論では右辺のみから型が決まる。この方法は非常に分かりやすいが、推論できる箇所が少ない。
一方、Rust では文を追いながら型情報が補完されていく。例えば以下では、変数 vec の型は宣言から Vec<_> と推論され、push の呼出から Vec<i32> と推論される。
fn main() {
let mut vec = Vec::new();
vec.push(42);
assert_eq!(vec.pop(), Some(42));
}