在Go语言的世界里,包就像一个大家庭,每个包都有自己的“家长”——包作用域。 包作用域规定了哪些成员可以在家庭里自由活动,哪些成员只能待在自己的房间里。
想象一下,包就像一个热闹的菜市场:
包作用域就像菜市场里的“地盘”:
Example1: 公有成员
package main
import "fmt"
var name string = "小叮当" // 公有变量
func sayHello() {
fmt.Println("Hello,", name) // 可以访问公有变量
}
func main() {
sayHello()
}
Output:
Hello, 小叮当
解析:
Example 2:私有成员
package main
import "fmt"
type Person struct {
name string // 私有成员
age int
}
func (p Person) sayHello() {
fmt.Println("Hello, 我的名字是", p.name) // 可以访问私有成员
}
func main() {
p := Person{name: "小叮当", age: 10}
//p.name = "Go" // 无法访问私有成员
p.sayHello()
}
Output:
Hello, 我的名字是小叮当
解析:
不追求山顶的景色,享受攀登的过程,让我们期待下面学习。