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
-> (boxes, left: int)nombra ambos resultados en la firma.- Asignarles y escribir
returnpelado manda el par de vuelta. _descarta un resultado que no interesa — dejarlo caer en silencio no se permite.
Palabras clave y builtins usados aquí
importintpackageprocreturn
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.
Paso 2 de 3 en Procedimientos; paso 8 de 27 en Fundamentos del lenguaje.