厌倦了使用“loop”、“while”和“for”等新奇的控制流机制?
好了不用担心了!
终于,Rust 的“goto”和“label”宏已经到来!他们是#![no_std]!
use goto_label::{goto, label};
#[no_mangle] // Needed to prevent foo() from being optimized away unsafe fn foo() { println!("This text will never be printed!");
label!("label1"); print!("Hello"); goto!("label2");
println!("Neither will this be printed!"); }
unsafe fn hello_world() { goto!("label1"); println!("This won't be printed either!");
label!("label2"); println!(" World!"); }
unsafe { hello_world(); }
|
警告:
不要实际使用,它肯定会导致未定义的行为,很可能表现为segfaults。