韩国网站购物,天健oa管理系统,平面设计免费网站,模板网站建设教程视频#x1f3c6;个人专栏 #x1f93a; leetcode #x1f9d7; Leetcode Prime #x1f3c7; Golang20天教程 #x1f6b4;♂️ Java问题收集园地 #x1f334; 成长感悟 欢迎大家观看#xff0c;不执着于追求顶峰#xff0c;只享受探索过程 Golang 教程09 - package Sc… 个人专栏 leetcode Leetcode Prime Golang20天教程 ♂️ Java问题收集园地 成长感悟 欢迎大家观看不执着于追求顶峰只享受探索过程 Golang 教程09 - package Scope
1. package Scope
1.1 如何理解package Scope
在Go语言的世界里包就像一个大家庭每个包都有自己的“家长”——包作用域。 包作用域规定了哪些成员可以在家庭里自由活动哪些成员只能待在自己的房间里。
想象一下包就像一个热闹的菜市场:
每个摊位就是一个包里面摆满了各种各样的商品也就是变量、函数、类型等成员。 顾客可以自由地在菜市场里逛挑选自己需要的商品。但是每个摊位都有自己的“地盘”顾客不能随便进入摊位后面的小房间因为那里存放着摊主的私人物品也就是私有成员。
包作用域就像菜市场里的“地盘”
公有成员就像摆在摊位上的商品所有顾客都可以自由购买。私有成员就像藏在小房间里的私人物品只有摊主自己才能使用。
1.2 示例
Example1: 公有成员
package mainimport fmtvar name string 小叮当 // 公有变量func sayHello() {fmt.Println(Hello,, name) // 可以访问公有变量
}func main() {sayHello()
}Output: Hello, 小叮当
解析
name 是一个公有变量在同一个包内的所有函数都可以访问它。函数 sayHello() 可以访问 name 变量因为它们都在同一个包内。
Example 2私有成员
package mainimport fmttype 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, 我的名字是小叮当
解析
name 是 Person 类型的一个私有成员只有 Person 类型的方法才能访问它。函数 sayHello() 是 Person 类型的方法它可以访问 name 变量。在 main() 函数中无法直接访问 p.name 变量因为它是一个私有成员。
1.3 总结
包作用域是 Go语言中一个重要的概念它可以帮助我们更好地组织代码。公有成员可以让其他包的代码访问而私有成员只能在本包内使用。理解包作用域可以帮助我们避免代码冲突和错误。
不追求山顶的景色享受攀登的过程让我们期待下面学习。