Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

br_if

Die br_if-Anweisung verzweigt zu einer loop-, einer block- oder einer if-Anweisung, basierend auf einer booleschen Bedingung (0 oder 1).

Probieren Sie es aus

(module ;; Import the browser console object, which you'll need to pass in from JavaScript (import "console" "log" (func $log (param i32))) ;; Create a global variable and initialize it to 0 (global $i (mut i32) (i32.const 0)) (func (loop $my_loop ;; Add 1 to $i global.get $i i32.const 1 i32.add global.set $i ;; Log the current value of $i global.get $i call $log ;; If $i is less than 10, branch to loop global.get $i i32.const 10 i32.lt_s br_if $my_loop ) ) (start 1) ;; Run the first function automatically ) 
const url = "{%wasm-url%}"; await WebAssembly.instantiateStreaming(fetch(url), { console }); 

Syntax

wat
;; Label the loop to enable branching to it later (loop $my_loop ;; Add 1 (true) to the stack i32.const 1 ;; Branch to the loop if the top of the stack is 1 br_if $my_loop ) 
Anweisung Binärer Opcode
br_if 0x0d