gpt4 book ai didi

struct - 如何使这个字段可变?

转载 作者:行者123 更新时间:2023-11-29 08:10:06 25 4
gpt4 key购买 nike

我现在被困在这里有一段时间了,无法弄清楚如何使字段 word 可变。有人可以在这里指出我的问题吗。

pub struct Person<'name>{
name:&'name Name
}

pub struct Name{
word: String
}

impl<'name> Person<'name>{
pub fn new(name:&'name mut Name)-> Person<'name>{
Person {
name: name
}
}
}

fn main(){
let mut name: Name = Name {
word: String::from("Petre")
};
let mut person: Person = Person::new(&mut name);
first(&mut person);

}

pub fn first(person:&mut Person){
person.name.word = String::from("Wurst");
second(person);
}

pub fn second(person:&mut Person){
println!("{}",person.name.word)
}

输出

error: cannot assign to immutable field `person.name.word`
--> main.rs:27:5
|
27 | person.name.word = String::from("Wurst");
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

最佳答案

查看您的 Person 结构:

pub struct Person<'name>{
name:&'name Name
}

name 字段是一个不可变 引用,因此您无法写入它。只需将其设为可变引用即可:

pub struct Person<'name>{
name:&'name mut Name
}

( playground )

关于struct - 如何使这个字段可变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39888301/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com