不同包中变量、函数、方法、类型公私有问题
优质
小牛编辑
150浏览
2023-12-01
在 Go 语言中通过首字母大小写来控制变量、函数、方法、类型的公私有
- 如果首字母小写,那么代表私有,仅在当前包中可以使用
- 如果首字母大写,那么代表共有,其它包中也可以使用
package demo import "fmt" var num1 int = 123 // 当前包可用 var Num1 int = 123 // 其它包也可用 type person struct { // 当前包可用 name string // 当前包可用 age int // 当前包可用 } type Student struct { // 其它包也可用 Name string // 其它包也可用 Age int // 其它包也可用 } func test1() { // 当前包可用 fmt.Println("test1") } func Test2() { // 其它包也可用 fmt.Println("Test2") } func (p person)say() { // 当前包可用 fmt.Println(p.name, p.age) } func (s Student)Say() { // 其它包也可用 fmt.Println(s.Name, s.Age) }