Globales en WebAssembly
Estado a nivel de módulo; solo los (mut ...) aceptan escrituras.
(module
;; Globals live outside any function; only (mut ...) ones may be
;; written after instantiation.
(global $visits (mut i32) (i32.const 0))
(global $capacity i32 (i32.const 18))
(func (export "check_in") (result i32)
(global.set $visits
(i32.add (global.get $visits) (i32.const 1)))
(global.get $visits))
(func (export "beds_left") (result i32)
(i32.sub (global.get $capacity) (global.get $visits))))
Cómo funciona
(global $visits (mut i32) ...)se escribe;$capacityno.global.settras unglobal.gety un add hace el incremento.- Los globales inmutables son constantes con nombre que el motor pliega.
Palabras clave y builtins usados aquí
exportfuncglobali32modulemutresult
El intento, en números
- Líneas
- 13
- Caracteres a escribir
- 408
- Tokens
- 82
- Ritmo de tres estrellas
- 65 tpm
Al ritmo de tres estrellas de 65 tokens por minuto, este intento toma unos 76 segundos.
Paso 1 de 3 en Globales y arranque; paso 20 de 28 en Fundamentos del lenguaje.