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.
Tipos primitivos
Seção intitulada “Tipos primitivos”| Tipo | Equivalente C aproximado | Descrição | Exemplo |
|---|---|---|---|
nter | int64_t | Inteiro assinado de 64 bits | nter x = 42; |
num | double | Número de vírgula flutuante 64-bit | num pi = 3.14; |
bool | bool | Valor booleano (sin / nau) | bool ok = sin; |
textu | char* | 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ília | Tipos |
|---|---|
| Inteiros com sinal | i8, i16, i32, i64, isize |
| Inteiros sem sinal | u8, u16, u32, u64, usize |
| Ponto flutuante | f32, f64 |
nter é equivalente a i64, e num é equivalente a f64.
Literais
Seção intitulada “Literais”Inteiros (nter)
Seção intitulada “Inteiros (nter)”nter a = 10;nter b = -42;nter c = 0;u8 byte = 255;i32 delta = -12;usize tamanho = 3;Números reais (num)
Seção intitulada “Números reais (num)”num pi = 3.14159;num negativo = -2.5;num inteiro_como_num = 4.0;f32 pequeno = 1.5;f64 grande = 10.25;Booleanos (bool)
Seção intitulada “Booleanos (bool)”O Kriol usa sin (verdadeiro) e nau (falso) em vez de true/false:
bool ativo = sin;bool desligado = nau;Strings (textu)
Seção intitulada “Strings (textu)”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}!";Alargamento de tipos (widening)
Seção intitulada “Alargamento de tipos (widening)”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áticoMoldes definidos com molda
Seção intitulada “Moldes definidos com molda”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];