Ci sono due possibili risposte per questo. La prima risposta è la risposta alla tua domanda letterale:
What does “a type system [that] has no hierarchy” mean?
Significa esattamente questo: non esiste una gerarchia. Cioè non ci sono relazioni sub / super tra i tipi. O, in altre parole: è un sistema di tipo senza sottotipizzazione, proprio come C, Haskell, ML, Pascal e molte altre lingue.
Is it like python that types are been checked at run time (dynamically typed) rather than 'compile time' (statically typed)?
No. Queste due cose sono completamente indipendenti. Sono completamente ortogonali. L'hai detto tu stesso: la digitazione dinamica rispetto a quella statica si riferisce a quando avviene il controllo del tipo. Non ha assolutamente nulla a che fare con il fatto che i tipi possano avere relazioni gerarchiche o meno.
Nota: questo non ha nulla a che fare con l'ereditarietà. L'ereditarietà e la sottotipizzazione sono ortogonali. Subtyping riguarda le relazioni tra tipi . Cioè relazioni tra specifiche e restrizioni. L'ereditarietà riguarda le relazioni tra implementazioni . In pratica ti consente di ridurre la duplicazione del codice specificando solo in che modo il tuo codice è diverso da un codice esistente.
Sfortunatamente, molti linguaggi come C ++, Java, C♯, ecc. confondono i due concetti. In quelle lingue, non è possibile creare un sottotipo senza ereditare anche la sua implementazione e viceversa. (Se immagini una versione di Java in cui solo le interfacce sono tipi e classi non lo sono, allora dovresti avere un linguaggio che separa sottotipizzazione ed ereditarietà, ad esempio. Nota che questo è in realtà il modo consigliato di programmare in Java, comunque!)
Ora, la seconda risposta possibile prende in considerazione il contesto del documento all'interno del quale hai trovato quella citazione particolare. E questa risposta è fondamentalmente, che sfortunatamente gli autori di quella particolare sezione della FAQ di Go sembrano anche confondere ereditarietà e sottotipizzazione, e inoltre, sembrano confondere l'orientamento all'oggetto con l'ereditarietà. Quindi, staresti meglio ignorando quella particolare parte delle FAQ, impara il sistema dei tipi di Go e decidi tu stesso.