Rust - from Mozilla

Le funzioni            

Abbiamo già intuito che la parola magica che introduce le funzioni in Rust è fn. In altri linguaggi abbiamo function, fun, def, func, il recente Dao presenta l'originale routine. Rust rimane fedele alla sua impostazione che predilige le parole brevi. La costituzione di una funzione in Rust è abbastanza titpica:

fn + nome della funzione + parametri tra parentesi tonde -> tipo di ritorno.
A loro volta i parametri sono costruiti nel consueto formato espressione: tipo e separati da virgole.

Un semplice esempio è il seguente:

  Esempio 4.1
1
2
3
4
5
6
7
8
9
10
fn somma (x: int, y : int) -> int
{
  return x + y;
}

fn main()
{
  let x = somma(2, 3);
  println(x.to_str());
}

La keyword return restituisce il valore di ritorno, come intuibile dal suo stesso nome,  della funzione e questo può essere tranquillamente assegnato ad un tipo, come avviene alla riga 8. Comunque return  ha una funzione più generalizzata in quanto, anche se non affiancata da un valore, impone l'uscita immediata dalla funzione. Infatti questa parola può essere omessa se abbiamo la creazione di un valore all'interno della funzione. L'esempio 4.1 funziona infatti allo stesso modo anche se scriviamo la funzione somma come segue:

fn somma (x: int, y : int) -> int
{
  x + y;
}

Ovviamente una funzione può anche non restituire alcun valore.

  Esempio 4.2
1
2
3
4
5
6
7
8
9
fn saluta()
{
  println("ciao");
}

fn main()
{
  saluta();
}

Per il momento non mi pare siano previsi default parametersnamed parameters, pur se la discussione è ancora viva nel gruppo di sviluppo..