Sobes.tech
Junior — Middle

Aký je rozdiel medzi rozhraním a typom Any v kontexte programovacieho jazyka?

sobes.tech AI

Odpoveď od AI

V jazyku Go sú interface{} (prázdne rozhranie) a any synonymá: any je len alias pre interface{}.

  • interface{} je rozhranie bez metód, ktoré môže obsahovať hodnotu akéhokoľvek typu.
  • any bol zavedený v Go 1.18 pre väčší komfort a čitateľnosť kódu, najmä s generikami.

Príklad:

var a any = 42
var b interface{} = "ahoj"

fmt.Println(a) // 42
fmt.Println(b) // ahoj

Rozdiely medzi rozhraním s metódami a any:

  • Rozhranie s metódami vyžaduje, aby typ tieto metódy implementoval.
  • any (prázdne rozhranie) nevyžaduje nič a je vhodné na uloženie akéhokoľvek hodnoty.

Stručne povedané, any je len pohodlnejší názov pre prázdne rozhranie interface{}.