Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rust 我怎么能看东西生锈的变化?_Rust - Fatal编程技术网

Rust 我怎么能看东西生锈的变化?

Rust 我怎么能看东西生锈的变化?,rust,Rust,我正在尝试设置剪贴板监视程序。在大多数语言中,通常的路径如下: func main() { old_contents loop { new = get_clipboard() if new != old_contents { old_contents = new do_something } } 这在Rust中不会立即起作用,因为循环有自己版本的变量等等。就一般意义而言,我应该怎么做 因为循环有自己版本的变量等等 对于简单的循环,情况

我正在尝试设置剪贴板监视程序。在大多数语言中,通常的路径如下:

func main() {
  old_contents
  loop {
    new = get_clipboard()
    if new != old_contents {
      old_contents = new
      do_something
    }
  }
这在Rust中不会立即起作用,因为循环有自己版本的变量等等。就一般意义而言,我应该怎么做

因为循环有自己版本的变量等等

对于简单的
循环
,情况并非如此。这是一个演示

fn main() {
    let mut outer = 42;

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

    println!("Outer after loop: {}", outer);
}
或者,你也可以


我注意到您的循环从未终止,因此在
循环
之外永远不会使用
旧内容。这有关系吗?你说的“他们自己的变量版本”是什么意思?我认为你应该阅读来理解和正确地学习语言。循环也会在这里解释,它可能会帮助你避免一些关于生锈的意识。请阅读:)@Schwern它是在循环中使用的,这是唯一的一点-我真的只想让它观察每个循环的变化,并在变化时做些什么。@HaroldSchreckengost您的示例并不生锈,但基本思想会起作用<代码>让mut new=42;让mut old_contents=值;循环{…}
你尝试过什么?“对于一个简单的循环来说不是这样的”:对于Rust中的每个构造来说都不是这样。Rust在声明的地方没有隐式变量。
fn main() {
    let outer = loop {
        println!("In the loop.");
        break 23;
    };

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