Um tipo determina um conjunto de valores junto com operações e métodos específicos para esses valores.
Um tipo pode ser denotado pelo nome de um tipo, se tiver um, ou especificado usando literal type, que compõe um tipo a partir de tipos existentes.
A linguagem pré-declara certos nomes de tipo. Outros são introduzidos com declarações de tipo. Tipos compostos, como:
array | struct | pointer | func |
interface | slice | map | chan |
podem ser construídos usando type literals.
Uma lista completa com todos os tipos pré-declarados pode ser encontrada aqui.