defer en Odin
La limpieza declarada junto a lo que limpia: defer corre al salir del ámbito, en reversa.
package main
import "core:fmt"
brew :: proc() {
// defer runs at scope exit, last-declared first.
fmt.println("kettle on")
defer fmt.println("kettle off")
defer fmt.println("pour the cup")
fmt.println("three minutes steeping")
}
main :: proc() {
brew()
fmt.println("milk first, obviously")
}
Cómo funciona
- Cada
deferse registra cuando su línea se alcanza, no cuando corre. - Al salir disparan del último al primero: servir la taza, luego apagar la pava.
- El patrón mantiene adquisición y liberación vecinas en el código.
Palabras clave y builtins usados aquí
deferimportpackageproc
El intento, en números
- Líneas
- 16
- Caracteres a escribir
- 294
- Tokens
- 66
- Ritmo de tres estrellas
- 75 tpm
Al ritmo de tres estrellas de 75 tokens por minuto, este intento toma unos 53 segundos.
Paso 1 de 3 en Idiomas del lenguaje; paso 16 de 27 en Fundamentos del lenguaje.