• 注册
  • 访问修饰符Access modifiers

    结构字段默认是私有的和不可变的(使结构也是不可变的)。

    他们的访问修饰符可以用pubmut来改变。总共有5种可能的选择:

    struct Foo {
        a int     // private immutable (default) 
    mut: 
        b int     // private mutable 
        c int     // (you can list multiple fields with the same access modifier)   
    pub: 
        d int     // public immmutable (readonly) 
    pub mut: 
        e int     // public, but mutable only in parent module  
    pub mut mut: 
        f int     // public and mutable both inside and outside parent module  
    }                 // (not recommended to use, that's why it's so verbose) 
    
    

    例如,这是内置模块中定义的字符串string类型:

    struct string {
        str byteptr
    pub:
        len int
    }
    

    从这个定义中很容易看出字符串是一个不可变类型。

    内置字符串数据的字节指针根本不可访问。len字段是公开的,但不是可变的。

    fn main() {
        str := 'hello' 
        len := str.len // OK  
        str.len++      // Compilation error  
    } 
    
  • 单栏布局 侧栏位置: