如何在结构中创建自定义 getter或setter:
struct MyStruct {
field1: int
}
impl MyStruct {
//getter
fn field1(self) -> int {
// some calculations....
// return the value...
}
//or
//setter
fn field1(self, value) {
}
}
真正的Rust方式是什么?
答案 0 :(得分:10)
Rust目前没有类似Python或C♯属性的东西; foo.bar
只能进行字段访问,绝不是方法调用。通常将该领域公之于众是有道理的,但如果您出于安全原因或需要产生副作用而不想这样做,那么fn field1(&self) -> int
和fn set_field1(&mut self, value: int)
是可以接受的。< / p>