if...else
Die if
Anweisung führt eine Anweisung aus, wenn das letzte Element auf dem Stack wahr (ungleich null) ist. Ist die Bedingung falsch (0), kann eine andere Anweisung ausgeführt werden.
Probieren Sie es aus
(module
;; import the browser console object, you'll need to pass this in from JavaScript
(import "console" "log" (func $log (param i32)))
(func
i32.const 0 ;; change to positive number (true) if you want to run the if block
(if
(then
i32.const 1
call $log ;; should log '1'
)
(else
i32.const 0
call $log ;; should log '0'
)
)
)
(start 1) ;; run the first function automatically
)
const url = "{%wasm-url%}";
await WebAssembly.instantiateStreaming(fetch(url), { console });
Syntax
wasm
i32.const 0
(if
(then
;; do something
)
(else
;; do something else
)
)
Um Rückgabewerte auf dem Stack zu belassen, fügen Sie die result
-Anweisung hinzu.
wasm
i32.const 0
(if (result i32)
(then
;; do something
(i32.const 1)
)
(else
;; do something else
(i32.const 2)
)
)
(drop)
Anweisung | Binärer Opcode |
---|---|
if |
0x04 |
else |
0x05 |