Saltar al contenido

06 · Funciones

Funciones con cuerpo de expresión

Usa = expresión en una función o método pequeño. La expresión proporciona el retorno; return, propagación de Result, genéricos y valores por defecto conservan la semántica de un cuerpo en bloque.

En esta página

Usa = expresión en una función o método pequeño. La expresión proporciona el retorno; return, propagación de Result, genéricos y valores por defecto conservan la semántica de un cuerpo en bloque.

Ejemplo completo

Funciones con cuerpo de expresión.

21-expression-bodies.zolo
Playground
// Feature: Expression-bodied functions and methods

// Syntax: fn name(parameters) -> Type = expression

// When to use: a small calculation, branch, forwarding call or method.


fn double(x: int) -> int = x * 2
fn absolute(x: int) -> int = if x < 0 { -x } else { x }
fn increment(value: int = 3) -> int = value + 1;
fn identity<T>(value: T) -> T = value

struct Counter(value: int) {
  fn next(self) -> int = self.value + 1
}

fn read_positive(value: int) -> Result<int, str> =
  if value > 0 { .Ok(value) } else { .Err("positive value required") }

// Question-mark failures exit this function; success is explicitly wrapped.

fn checked_double(value: int) -> Result<int, str> = .Ok(double(read_positive(value)?))

print(double(4)) // expected: 8

print(absolute(-7)) // expected: 7

print(increment()) // expected: 4

print(identity("Ada")) // expected: Ada

let counter: Counter = .{ value: 9 }
print(counter.next()) // expected: 10

match checked_double(5) {
  .Ok(value) => print(value),
  .Err(error) => print(error)
} // expected: 10

match checked_double(-1) {
  .Ok(value) => print(value),
  .Err(error) => print(error)
} // expected: positive value required

Reglas y comportamiento

Parámetros de funciones y lambdas · Documentación

Desde un checkout del repositorio:

zolo examples/features/05-functions/21-expression-bodies.zolo

Consulta también

Índice global

Encuentra tu camino por Zolo

Prueba una idea

Empieza aquí

9 resultados

9 resultados

enespt-br