プログラミング言語がもつ機能の1つで、ソースコード上で変数や、関数の仮引数、戻り値などの型を明示的に記述せずとも、コンパイラなどが自動的に判断、決定するというものです。
型推論の機能を備えているかどうか、またどのような仕様であるかは、プログラミング言語によって異なります。基本的に静的型付け言語の機能であり、C++、C#、Java などが型推論の機能を備えています。また、(静的型付けを採用する)関数型プログラミング言語のほとんどが型推論の機能を持っています。
たとえば、var a = read_data()
のように、変数を宣言するときに型を明確に記述せず、var
や auto
といった代わりのキーワードを記述しておくと、コンパイラなどが型を判断して確定させます。この例の場合、read_data
という関数の戻り値を使って初期化しようとしているため、変数 a
の型は、read_data関数の戻り値の型と同じものにすればいいと判断できます。
同様に、関数やラムダ式の仮引数は、実引数の型から判断できますし、関数宣言に記述する戻り値の型は、関数内で値を呼び出し元へ返すコードを確認すれば判断できます。
C++ の型推論の例が、新C++編「イテレータ」にあります。
動的型付け言語でも、var a = read_data()
のような記述をすることがありますが、これはプログラムの実行時に、実際に
read_data関数が返した値の型になるということであり、型推論しているわけではありません。
Programming Place Plus のトップページへ
はてなブックマーク に保存 | Pocket に保存 | Facebook でシェア |
X で ポスト/フォロー | LINE で送る | noteで書く |
RSS | 管理者情報 | プライバシーポリシー |