go语言变量的作用域

Go / 551人浏览 / 0人评论

go语言中有全局变量和局部变量,全局变量在方法的大括号外,大括号内的变量成为局部变量,但是局部变量也有作用域,方法内的大括号中的变量只可以在括号内使用。

go语言变量的作用域

go语言中有全局变量和局部变量。

全局变量在方法的大括号外。

大括号内的变量成为局部变量。

但是局部变量也有作用域。

方法内的大括号中的变量只可以在括号内使用。

局部变量sex

package main

import "fmt"

var API_VERSION string = "0.1" // 声明一个字符串全局变量,赋值"0.1"

func main() {

    var name string = "学习go语言" // 声明一个字符串变量类型

    if true {
        var age int = 50         // 声明一个整形变量类型age,赋值50。
        var sex int = 1          // 声明一个整形变量类型sex,赋值1。
        fmt.Println(name)        // name 变量属于上级括号局部变量,下级大括号能够使用变量name。
        fmt.Println(age)         // age 变量只属于if大括号,只能在if条件下括号中使用。
        fmt.Println(sex)         // sex 变量只属于if大括号,只能在if条件下括号中使用。
        fmt.Println(API_VERSION) // API_VERSION 全局变量,能使用。
        API_VERSION = "0.2"      // 重新修改全局变量API_VERSION的值为"0.2"
    }
    fmt.Println(API_VERSION) // API_VERSION 全局变量,能使用,且是if代码块中重新赋值的值。
    fmt.Println(sex)         // go语言编译器提示未找到变量sex,应为sex定义在了if条件的打括号内。

}

执行代码打印

undefined: sex

注释最后打印sex代码,执行代码打印

学习go语言
50
1
0.1
0.2

转载注明:

0 条评论

还没有人发表评论

发表评论 取消回复

记住我的信息,方便下次评论
有人回复时邮件通知我