课程名称: Go开发工程师全新版
课程章节: 3-5 变量的作用域
课程讲师: bobby
课程内容:
全局变量:在函数外定义的变量,能在该文件中的任何地方使用
package main
import "fmt"
//全局变量,文件中任何地方都可以使用
var name = "bobby"
func a() {
// 使用全局遍历 name
fmt.Println(name)
}
func main() {
// 使用全局遍历 name
fmt.Println(name)
}
局部变量:函数中定义的变量,只能在当前定义变量的函数中使用
package main
import "fmt"
func a() {
// 不能使用 main 函数中定义的局部变量
fmt.Println(mainName)
}
func main() {
//局部变量
var mainName = "main"
// 可以使用,局部变量
fmt.Println(mainName)
}
{}:限制变量作用域为 {} 中
package main
import "fmt"
func main() {
// {}代码快,可以将代码写在里面,但也会限制变量的作用域
{
localName := "local"
// 可以使用
fmt.Println(localName)
}
// 不能使用,因为 localName 是在 {} 中定义,
// {} 限制变量作用域在 {} 中
fmt.Println(localName)
}
如果想要取 {} 中变量的值,需要在 {} 外声明变量,在 {} 中赋值,如:
package main
import "fmt"
func main() {
var localName string
// {}代码快,可以将代码写在里面,但也会限制变量的作用域
{
// = 赋值,不要使用 := 这是声明变量
localName = "local“
}
// {} 外面就能得到 {} 里面中变量的值
// 因为 localName 变量是在 {} 外定义的,localName 变量的作用域是在 main 函数中
// 所以可以在 {} 外,使用 localName
fmt.Println(localName)
}
课程收获:
了解变量作用域