访问控制
模块一级成员访问控制
目前模块的一级元素有6个:const常量,enum枚举,fn函数/方法,struct结构体,interface接口,type类型
默认是模块级别,只有在模块内部才能访问。
加了pub以后,就是公共级别。
pub const ( // 公共常量
pi = 3.14
)
pub enum Color { // 公共枚举
blue
green
red
}
pub fn my_fn() { // 公共函数
println('my_fn is public')
}
pub struct Point { // 公共结构体
mut:
x int
y int
}
pub fn (mut p Point) move(x int, y int) { // 公共方法
p.x += x
p.y += y
}
pub interface MyReader { // 公共接口
read() int
}
pub type Myint = int // 公共类型别名结构体字段访问控制
结构体字段默认是:私有且不可变,
pub可以变为公有,mut可以变为可变,
有以下4种常用的组合,以及1种不推荐使用的全局字段:__global。
看看string结构体的定义:
所以以下代码会报错:
最后更新于
这有帮助吗?