すべての新しいプログラミング言語、または少なくとも一般的になったプログラミング言語は型推論を使用しているようです。Javascriptでさえ、さまざまな実装(Acscript、typescriptなど)を通じて型と型推論を取得しました。私には良さそうに見えますが、トレードオフがあるのか、Javaや古い良い言語に型推論がないのはなぜだと思いますか
- 型を指定せずにGoで変数を宣言すると(型なしのvarまたは:=構文を使用)、変数の型は右側の値から推測されます。
- Dを使用すると、動的言語のように、型を重複して指定せずに大きなコードフラグメントを作成できます。一方、静的推論は型と他のコードプロパティを推測し、静的な世界と動的な世界の両方の長所を提供します。
- Rustの型推論エンジンは非常にスマートです。これは、初期化中にr値のタイプを見る以上のことを行います。また、変数のタイプを推測するために後で変数がどのように使用されるかについても調べます。
- Swiftは型推論を使用して適切な型を算出します。型推論により、コンパイラは、指定した値を調べるだけで、コードをコンパイルするときに特定の式の型を自動的に推測できます。
var
およびC ++ auto
)と型推論(Haskellのような、双方向にlet
)。前者の場合、名前のタイプはイニシャライザーのみから推測できます。名前のタイプに従って使用する必要があります。後者の場合、名前のタイプはその使用からも推測できます。これは[]
、要素のタイプに関係なく空のシーケンスに対して、またはnewEmptyMVar
参照先に関係なく新しいnull可変参照に対して簡単に記述できるという点で便利です。タイプ。
var
ことが示されています。