1.全局变量,在程序整个生命周期有效
比如:
test.go 中 我们定义 了 a 作为全局变量,那么在这个程序中任何地方都可以调用a, 这个
var a int =
2. 局部变量,分为两种:1)函数内定义,2)语句块内定义。
func add(a int, b int) int {
var sum int =
//sum是局部变量 函数内定义
if a > {
var c int = 100
//c是布局变量,尽在if语句块有效 语句块里面定义
}
}
举例
package main import (
"fmt"
"zhangyue/res/listen6/可见性"
) func main() {
sum := 可见性.Add(, )
fmt.Printf("cacl Add return %d\n", sum) // sub := 可见性.sub(200,100) // 报错 说明 小写是私有的 只能在包内使用 不能在保外使用
// fmt.Printf("cacl sub return %d\n", sub) fmt.Printf(" cacl A is %d \n", 可见性.A)
// fmt.Printf(" cacl a is %d \n", 可见性.a) // 报错 // 如果想得到小a 可用下面这种方法
a := 可见性.Test()
fmt.Printf(" cacl a is %d \n", a)
}
可见性
可见性,包内任何变量或函数都是能访问的。包外的话,首字母大写是可导出的,能够被其他包访问或者调用,小写表示是私有的,不能被外部包访问或调用
func add(a int, b int) int { }
//add这个函数只能在包内部调⽤,是私有的,不能被外部的包调⽤
举例
代码 结构
可见性/cacl.go
package 可见性
// 大写能被外部的包引用 小写 说明是私有的 只能在本包里面被调用 (本包里面的所有.go都可调用) var a=
var A = func Add(a, b int) int {
return a+b
} func sub(a, b int) int {
return a - b
}
可见性/test.go
package 可见性 func Test() int {
return a
}
可见性测试/test.go
package main import (
"fmt"
"zhangyue/res/listen6/可见性"
) func main() {
sum := 可见性.Add(, )
fmt.Printf("cacl Add return %d\n", sum) // sub := 可见性.sub(200,100) // 报错 说明 小写是私有的 只能在包内使用 不能在保外使用
// fmt.Printf("cacl sub return %d\n", sub) fmt.Printf(" cacl A is %d \n", 可见性.A)
// fmt.Printf(" cacl a is %d \n", 可见性.a) // 报错 // 如果想得到小a 可用下面这种方法
a := 可见性.Test()
fmt.Printf(" cacl a is %d \n", a)
}