型推論について。

基礎知識

型推論とは、型を明示せず周辺コードから推論する機能である。

例えば、以下の二行は同じ意味になる。


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));
}

関連エラー