Rust 结构中的自定义getter和setter

Rust 结构中的自定义getter和setter,rust,Rust,如何在结构中创建自定义的getter或setter: struct MyStruct { field1: int } impl MyStruct { //getter fn field1(self) -> int { // some calculations.... // return the value... } //or //setter fn field1(self, value) { } } 真正的生锈方法是什么?生锈没

如何在结构中创建自定义的getter或setter:

struct MyStruct {
  field1: int
}

impl MyStruct {

  //getter
  fn field1(self) -> int {
    // some calculations....
    // return the value...

  }

  //or
  //setter
  fn field1(self, value) {

  }

}

真正的生锈方法是什么?

生锈没有Python或C之类的东西♯ 目前的财产
foo.bar
是唯一的字段访问,而不是方法调用。通常,将字段公开是有意义的,但如果出于安全原因或需要产生副作用,您不想这样做,则可以使用
fn field1(&self)->int
fn set_field1(&mut self,value:int)

如果我选择
fn field1(&self)->int和fn set_field1(&mut self,值:int)
,如何将
field1:int
设置为私有?@AlexanderSupertramp:默认情况下它是私有的。如果您希望它是公共的,您需要编写
pub field1:int
。当一个人仅从其他模块访问时它不是私有的吗?@AlexanderSupertramp,是的,Rust只具有模块级隐私。如果您需要,请将程序拆分为较小的模块需要更细粒度的隐私控制。“公共可能只读”如何?这有时会很有用。