Sobes.tech
Junior — Middle

Jaký je rozdíl mezi rozhraním a typem Any v kontextu programovacího jazyka?

sobes.tech AI

Odpověď od AI

V jazyce Go jsou interface{} (prázdné rozhraní) a any synonyma: any je pouze alias pro interface{}.

  • interface{} je rozhraní bez metod, které může obsahovat hodnotu libovolného typu.
  • any byl zaveden v Go 1.18 pro větší pohodlí a čitelnost kódu, zejména s generiky.

Příklad:

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

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

Rozdíly mezi rozhraním s metodami a any:

  • Rozhraní s metodami vyžaduje, aby typ tyto metody implementoval.
  • any (prázdné rozhraní) nevyžaduje nic a je vhodné pro uložení jakékoli hodnoty.

Stručně řečeno, any je jen pohodlnější název pro prázdné rozhraní interface{}.