Pular para o conteúdo

Tipos de Dados

O Kriol é uma linguagem de tipagem estática. Cada variável tem um tipo definido em tempo de compilação que não pode mudar.

TipoEquivalente C aproximadoDescriçãoExemplo
nterint64_tInteiro assinado de 64 bitsnter x = 42;
numdoubleNúmero de vírgula flutuante 64-bitnum pi = 3.14;
boolboolValor booleano (sin / nau)bool ok = sin;
textuchar*Cadeia de caracteres (string)textu s = "oi";

Também existem tipos numéricos primitivos explícitos para controlar largura e sinal quando isso é importante:

FamíliaTipos
Inteiros com sinali8, i16, i32, i64, isize
Inteiros sem sinalu8, u16, u32, u64, usize
Ponto flutuantef32, f64

nter é equivalente a i64, e num é equivalente a f64.

nter a = 10;
nter b = -42;
nter c = 0;
u8 byte = 255;
i32 delta = -12;
usize tamanho = 3;
num pi = 3.14159;
num negativo = -2.5;
num inteiro_como_num = 4.0;
f32 pequeno = 1.5;
f64 grande = 10.25;

O Kriol usa sin (verdadeiro) e nau (falso) em vez de true/false:

bool ativo = sin;
bool desligado = nau;

Podem usar aspas duplas ou simples, e suportam interpolação com f-strings:

textu nome = "Kriol";
textu outro = 'Cabo Verde';
textu saudacao = f"Olá, {nome}!";

O Kriol suporta conversões implícitas de alargamento quando não há perda de informação, como nter para num, inteiros menores para inteiros maiores compatíveis, ou inteiros para ponto flutuante. Por exemplo:

nter x = 5;
num y = x; // ok, alargamento automático

Além dos tipos primitivos, podes declarar moldes com a palavra-chave molda:

molda Pessoa {
textu nomi;
nter idadi;
}
Pessoa pessoa = Pessoa::{nomi: "jose", idadi: 60};

Consulta a página Moldes (molda) para detalhes.

Arrays são colecções de tamanho fixo do mesmo tipo. Consulta a página Arrays para a documentação completa.

nter[5] numeros = [1, 2, 3, 4, 5];