typestar

Retornos múltiples en Odin

Cajas y sobrantes en una llamada: resultados con nombre y el return pelado que los manda.

package main

import "core:fmt"

// Named results are declared in the signature; a bare return sends them.
divide :: proc(eggs, box: int) -> (boxes, left: int) {
    boxes = eggs / box
    left = eggs % box
    return
}

main :: proc() {
    full, spare := divide(157, 12)
    fmt.println(full, "boxes,", spare, "eggs in the basket")

    // Extra results can be dropped explicitly with _.
    just_boxes, _ := divide(60, 12)
    fmt.println("five dozen fills", just_boxes)
}

Cómo funciona

  1. -> (boxes, left: int) nombra ambos resultados en la firma.
  2. Asignarles y escribir return pelado manda el par de vuelta.
  3. _ descarta un resultado que no interesa — dejarlo caer en silencio no se permite.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
19
Caracteres a escribir
443
Tokens
92
Ritmo de tres estrellas
70 tpm

Al ritmo de tres estrellas de 70 tokens por minuto, este intento toma unos 79 segundos.

Escribe este fragmento

Paso 2 de 3 en Procedimientos; paso 8 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →