El sistema de context en Odin
Cada proc carga un context implícito; el allocator temporal es su truco más barato.
package main
import "core:fmt"
main :: proc() {
// Every proc carries an implicit context with two allocators.
fmt.println("default:", context.allocator != {})
// tprintf builds strings on the temp allocator -- no delete needed.
tag := fmt.tprintf("%s berth %d", "Valparaiso", 9)
fmt.println("tag:", tag)
// One call reclaims everything temporary at a natural boundary.
free_all(context.temp_allocator)
fmt.println("temp storage swept")
}
Cómo funciona
context.allocatorycontext.temp_allocatorviajan en cada llamada.fmt.tprintfarma una cadena en almacenamiento temporal — nada que borrar.free_all(context.temp_allocator)barre todo en una frontera natural.
Palabras clave y builtins usados aquí
contextfree_allimportpackageproc
El intento, en números
- Líneas
- 16
- Caracteres a escribir
- 442
- Tokens
- 73
- Ritmo de tres estrellas
- 65 tpm
Al ritmo de tres estrellas de 65 tokens por minuto, este intento toma unos 67 segundos.
Paso 3 de 3 en Idiomas del lenguaje; paso 18 de 27 en Fundamentos del lenguaje.