当前位置: 首页 > 知识库问答 >
问题:

生锈: 如果

傅自明
2023-03-14

我目前正试图理解两者之间的区别

let mut s: &str = "foo";

s = "foobar";

共有2个答案

邹修真
2023-03-14

在这个例子中,可变的不是str,而是

陆飞捷
2023-03-14

str 本身是不可变的,但

fn main() {
    let mut s: &str = "foo";
    let p = s;
    s = "foobar";
    println!("{:?}", p);
    println!("{:?}", s);
}

关于指针的 rust book 也可能是理解指针的有用资源。

 类似资料:
  • 此代码是对更复杂代码的简化,以隔离问题: 导致以下错误: 我正在使用 Rust nightly (9c31d76e9 2016-10-03)。 该代码是一个结构,其中包含指向相同结构类型数组的 的指针。这些受累的数组被递归地称为在编写器中应用一些写入( trait约束被删除,因为它与问题无关),并且在实际代码中成为。 在某些地方,性状解析变得时髦,导致类型递归,在考虑性状解析的单态时,递归似乎相当

  • 我正在通过显式注释函数签名来测试我对Rust中生命周期的理解,我创建了一个我不确定是否理解的示例。 在本例中,我模拟了共享一本书并在其中翻开一页的概念。为此,我使用一个可变引用,将其传递给一个函数,该函数更新书籍结构的当前页面字段。My结构和主功能如下所示: (操场) 对于函数的第一个实现,我让编译器添加注释和编译的所有内容: 然后,我尝试添加一个生命周期注释,为本身的引用和实例指定生命周期: 这

  • 我正在将一个rust应用程序打包到docker映像以部署到我的服务器。我发现rust docker的图像大小超过1GB(比使用java和python的任何其他应用程序都大)。为什么rust docker的形象如此巨大?我检查了该层,发现cargo build命令需要400MB以上的内存。 是否可以缩小rust docker的图像?

  • 此代码基于生存期章节中Rust书中的示例代码。我想知道相同方法的以下两个版本有何不同: 对 我猜在第一个版本中,我们指示编译器 > 查找生存期,使两者都 确保返回的引用仅在该生命周期内使用,因为在该生命周期之外,它可能会成为悬空引用。 代码的第二个版本是做什么的?Rust书中的生命周期省略规则之一说,在结构方法中,返回的引用被分配了

  • 我已经在锈菌上试验了很长时间了。关于铁锈的寿命有一种混淆。查看以下代码: string2的生存期在内部作用域之后结束,结果在外部作用域中定义。在println!中传递结果时!,编译不会抱怨,而是继续并打印结果。但是,当我将string2更改为: 借书人会投诉的。为什么会这样。

  • 我以前使用过: 要创建对象,请执行以下操作: 然而,这似乎不再有效。编译器报告: 宏定义发生了什么变化,使其不再工作? 下面的基本示例效果良好: 这似乎是对{T:ident,$(…),}的一些改变是否正在处理扩展? 这到底是怎么回事?