Pular para o conteúdo

Funções

fn <nome>(<parâmetros>) <tipo_retorno> {
// corpo
}

Uma função que não retorna valor omite o tipo de retorno:

fn <nome>(<parâmetros>) {
// corpo
}
fn soma(nter a, nter b) nter {
divolvi a + b;
}
fn saudacao(textu nome) {
mostran(f"Olá, {nome}!");
}
fn inisiu() {
nter resultado = soma(3, 4);
mostran(resultado);
}
soma(10, 20);
saudacao("Mundo");
nter r = soma(1, 2);

Retorna um valor da função. O tipo deve corresponder ao tipo declarado:

fn dobro(nter n) nter {
divolvi n * 2;
}

Numa função sem tipo de retorno, divolvi pode aparecer sem valor para saída antecipada:

fn imprimeSePar(nter n) {
si n % 2 != 0 {
divolvi;
}
mostran(f"{n} é par");
}

O Kriol suporta recursão e recursão mútua. As funções podem ser chamadas antes da sua declaração no ficheiro:

fn par(nter n) bool {
si n == 0 { divolvi sin; }
divolvi impar(n - 1);
}
fn impar(nter n) bool {
si n == 0 { divolvi nau; }
divolvi par(n - 1);
}
fn inisiu() {
mostran(par(4)); // sin
mostran(impar(3)); // sin
}
FunçãoDescrição
mostra(x)Imprime x sem nova linha
mostran(x)Imprime x seguido de nova linha
konfirma(e)Verifica que e é verdadeiro; termina se falso
sai(código)Termina o programa com o código de saída dado
  • Não é permitida a duplicação de funções com o mesmo nome.
  • Os parâmetros são passados por valor.
  • A ordem de declaração no ficheiro não afeta a capacidade de chamada entre funções do mesmo ficheiro.