11.Go_Variable scope(变量作用域)

变量作用域
作用域为已声明标识符所表示的常量、类型、变量、函数或包在源代码中的作用范围。
Go 语言中变量可以在三个地方声明:
函数内定义的变量称为局部变量
函数外定义的变量称为全局变量
函数中定义的变量称为形式参数
局部变量
在函数体内声明的变量称之为局部变量,它们的作用域只在函数体内,参数和返回值变量也是局部变量。
例如:
package main

import "fmt"

func main() {
    //声明局部变量
    var a,b,c int
    //初始化参数
    a = 10
    b = 20
    c = a + b
    fmt.Printf("a=%d,b=%d,c=%d",a,b,c)
}
运行结果:
a=10,b=20,c=30
全局变量
在函数体外声明的变量称之为全局变量,全局变量可以在整个包甚至外部包(被导出后)使用。
例如:
package main

import "fmt"

var d int
func main()  {
    var a,b int
    a = 10
    b = 20
    d = a + b
    fmt.Printf("a=%d,b=%d,d=%d",a,b,d)
}
运行结果:
a=10,b=20,d=30
Go 语言程序中全局变量与局部变量名称可以相同,但是函数内的局部变量会被优先考虑
形式参数
形式参数会作为函数的局部变量来使用。
package main
import "fmt"
var a11 int = 20
func main() {

    //main函数中声明局部变量
    a11 = 10
    var b int = 20
    var c int = 0
    fmt.Printf("main--a=%d\n",a11)
    c = sum(a11,b)
    fmt.Printf("main--c=%d\n",c)
}
func sum(a,b int) int{
    fmt.Printf("sum--a=%d\n",a)
    fmt.Printf("sum--b=%d\n",b)
    return  a + b
}
运行结果:
main--a= 10
sum--a= 10
sum--b= 20
main--c= 30

你可能感兴趣的:(11.Go_Variable scope(变量作用域))