type Shape { // a declared type, met properly later on
Circle { radius: Int }
}
proc main(): void {
name := "bee" // camelCase: uma variável
MAX_RETRIES := 5 // UPPER_CASE: uma variável que nada reatribui
shape := Shape.Circle(4) // PascalCase: um tipo e sua variante
_scratch := 0 // um _ no início é posto de lado
echo "{name}, tente até {MAX_RETRIES} vezes, raio {_scratch + 4}"
echo shape // {4}: um valor aparece como seus campos
}A grafia de um nome diz o que ele é, e cada forma é obrigatória no lugar onde o nome é declarado:
camelCase nomeia variáveis, parâmetros, campos, todo proc, func e query, e o nome pelo qual um import é alcançado.PascalCase nomeia tipos, suas variantes e átomos.UPPER_CASE pode nomear uma variável que nada reatribui, do jeito que uma constante costuma ser escrita. É sempre permitido, nunca obrigatório — camelCase é o padrão — e uma variável mut, um parâmetro, um campo, um contador de laço ou um nome vinculado por um padrão não podem usá-lo.Um _ no início é posto de lado antes de a forma ser checada, então _scratch e _MAX valem, e _ sozinho descarta um valor. Nomes são letras ASCII, dígitos e _; café não é um.
As palavras-chave são import proc func query test type if else return is with void true false echo assert panic dyn mut async await for in each bounds break continue. Elas são minúsculas e somente minúsculas, e reservadas em qualquer grafia: Proc ou IF é um erro de compilação que aponta as duas leituras, e nenhum nome em lugar algum pode virar uma palavra-chave em minúsculas — uma variante chamada Return, um tipo chamado Test ou um campo chamado type são recusados. Um campo cuja chave JSON é uma palavra-chave recebe outro nome e diz a chave em uma anotação, mostrada no slide de JSON.