Typová inference

ikona
Tento článek není dostatečně ozdrojován, a může tedy obsahovat informace, které je třeba ověřit.
Jste-li s popisovaným předmětem seznámeni, pomozte doložit uvedená tvrzení doplněním referencí na věrohodné zdroje.

Typová inference nebo odvozování typu je vlastnost některých programovacích jazyků, která umožňuje nedeklarovat typ proměnné, pokud jej lze odvodit (rekonstruovat) ze zbývajících informací a pravidel zápisu.

Staticky typované jazyky vyžadují, aby typ hodnoty byl předem definován. V některých programovacích jazycích je třeba datový typ výslovně deklarovat, což je pro vývojáře nepohodlné. V mnoha případech je možné typ automaticky odvodit. Například v následujícím kódu:

var msg: String = "Hello, world!";

je jasné, jakého typu proměnná msg je. Scala, jako příklad jazyka majícího tuto schopnost, tedy v tomto případě typ nevyžaduje:

var msg = "Hello, world!";

Naopak, jsou situace, kdy je třeba typ explicitně uvést, protože by jinak došlo k nejednoznačnosti, se kterou by si kompilátor nedovedl poradit.

A nebo, jsou situace, kdy je třeba typ explicitně uvést, protože by kompilátor zvolil jiný, například příliš obecný, nebo příliš konkrétní, který vývojáři nevyhovuje.

V jazycích s generickým typovým systémem lze odvozovat také typové parametry.[1]

Jazyky podporující typovou inferenci

  • Scala
  • Haskell
  • C++
  • D
  • Java
  • Python
  • Rust
  • Visual Basic

Reference

V tomto článku byl použit překlad textu z článku Typinferenz na německé Wikipedii.

  1. Algoritmus pro inferenci typových parametrů [1]