rust - Rust 中 'mut' 关键字的用法

标签 rust

我对 Rust 语言中的“mut”用法有疑问。

use std::io;

fn main() {
    println!("Guess the number!");

    println!("Please input your guess.");

    let mut guess = String::new();

    io::stdin()
        .read_line(&mut guess)
        .expect("Failed to read line");

    println!("You guessed: {}", guess);
}

当变量guess已经声明为“mut”时,为什么我们应该在对read_line()的函数调用中再次用“mut”对其进行限定?

最佳答案

.read_line 需要可变引用,因此您必须创建变量的 &mut

请注意,let mut Guess = String::new(); 创建了一个拥有字符串的变量。 .readline 想要更改字符串的内容而不获取所有权。这样您在函数调用后仍然可以使用猜测。如果您将 guess 直接传递给该函数,那么之后您将无法对其执行任何操作。因此,您需要首先创建一个可变引用,您可以将其传递给 .readline

关于rust - Rust 中 'mut' 关键字的用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60445787/

相关文章:

rust - 如何使用 serde 序列化选项?

csv - 如何在结构回调中使用外部对象,例如将数据附加到 CSV 时?

rust - Union-Find 实现不更新父标签

rust - 如何使用单个 Sublime Text 快捷方式构建和运行 Rust 代码?

struct - 有没有一种方法可以基于特征实现创建结构?

regex - 正则表达式在所有大写字母上分割时仅找到1个匹配项

struct - 尝试将自引用数据拆分为单独的结构

rust - 如果 strong_count 为 1 且 weak_count 为 0,包含 `Send` 的 `Rc` 结构是否安全?

rust - 是否可以让 wasm-bindgen 忽略 impl 中的某些公共(public)功能?

rust - 无法创建将 byte slice 段转换为整数的通用函数,因为在编译时不知道大小