Zdravím. Určitě platí toto: “u typu interface se v runtime pamatuje jak definovaný typ proměnné (takzvaný statický typ), tak i datový typ hodnoty, která je do proměnné přiřazena (takzvaný dynamický typ)”? Já tedy žil doteď v domění, že ten “statický typ” je jen záležitostí doby překladu. Pokud se něco zásadně nezměnilo, tak proměnné deklarované jako rozhraní si drží (v runtime) hodnotu a právě ten “dynamický typ”.
Díky. Ono ten deklarovaný ("statický") typ je vždy znám v době překladu (právě proto, že je deklarovaný nebo odvozený při typové inferenci), takže nemá smysl mít ho uložený pro runtime. Jestli můžu něco navrhnout, možná byste mohl popsat blíže vnitřní reprezentaci rozhraní v Go (někdy v budoucnu, podrobněji než v tomto článku) a jak se s nimi (ne)má pracovat (například známá zásada "typy argumentů jsou rozhraní, typy návratových hodnot konkrétní typy"). Myslím, že by to bylo přínosné nejen v kontextu Go, protože jde o obecný princip.