访问控制

模块一级成员访问控制

目前模块的一级元素有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结构体的定义:

所以以下代码会报错:

最后更新于

这有帮助吗?