我正在尝试设置剪贴板观察器。在大多数语言中,通常的做法是:

func main() {
  old_contents
  loop {
    new = get_clipboard()
    if new != old_contents {
      old_contents = new
      do_something
    }
  }

这在Rust中不会立即生效,因为循环会获得自己的变量等版本。从一般意义上来说,我应该怎么做?

最佳答案



对于简单的loop而言并非如此。这是一个演示。

fn main() {
    let mut outer = 42;

    loop {
        println!("Outer in loop: {}", outer);
        outer = 23;
        break;
    }

    println!("Outer after loop: {}", outer);
}

或者,您可以return a value from a loop
fn main() {
    let outer = loop {
        println!("In the loop.");
        break 23;
    };

    println!("Outer after loop: {}", outer);
}

关于rust - 我如何观察Rust的变化?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57351171/

10-13 07:32