• Go语言变量


    变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。变量可以通过变量名访问。

    Go语言是静态类型语言,不能在运行期间改变变量类型。使用关键字 var 定义变量,自动初始化为零值。如果提供初始化值,可省略变量类型,由编译器自动推断。

    Go语言中变量可以在三个地方声明:

    函数外定义的变量称为全局变量
    函数内定义的变量称为局部变量
    函数定义中的变量称为形式参数

    接下来让我们具体了解全局变量、局部变量和形式参数。

    全局变量

    在函数体外声明的变量称之为全局变量,全局变量可以在整个包甚至外部包(被导出后)使用。

    局部变量

    在函数体内声明的变量称之为局部变量,它们的作用域只在函数体内,参数和返回值变量也是局部变量。

    形式参数

    形式参数会作为函数的局部变量来使用。

    变量声明

    第一种,指定变量类型,声明后若不赋值,使用默认值。

    var name string

    第二种,根据值自行判定变量类型。

    var age = 18

    第三种,变量声明并赋值

    var class string = "Linux"

    第四种,一次性声明多个变量

    var Mon, Tues, Wed, Thur, Fri, Sat, Sun int
    
    var (
        Monday    int
        Tuesday   int
        Wednesday int
        Thursday  int
        Friday    int
        Saturday  int
        Sunday    int
    )

    第五种,短声明变量

    在函数内部,可以使用更简略的 ":=" 方式定义变量。":=" 简洁赋值语句在明确类型的地方,可以用于替代 var 定义。

    package main
    
    func main() {
        name := "oldboy"
        age, class := 18, "Linux"
        _, _, _ = name, age, class
    }

    注意:":=" 结构不能在函数外使用。

    第六种,形式参数

    package main
    
    func main() {
    }
    
    func sum(a, b int) (c int) {
        c = a + b
        return
    }

    变量优先级

    Go语言程序中全局变量与局部变量名称可以相同,但是函数内的局部变量会被优先考虑。实例如下:

    ackage main
    
    import "fmt"
    
    // 声明全局变量
    var variable string = "全局变量"
    
    func main() {
        // 声明局部变量
        var variable string = "局部变量"
        fmt.Printf("结果:%s
    ", variable)
    }

    运行结果:

    结果:局部变量

    多变量赋值时,先计算所有相关值,然后再从左到右依次赋值。

    package main
    
    import "fmt"
    
    func main() {
        data, i := [4]string{"course", "Python", "Linux", "Golang"}, 0
        i, data[i] = 2, "oldboy"
        fmt.Printf("i:%v,data:%v
    ", i, data)
    }

    输出结果:

    i:2,data:[oldboy Python Linux Golang]
  • 相关阅读:
    vue里面的v-for列表循环
    浅谈Vue.use
    js 限制输入框只能输入数字的问题
    vue computed的执行问题
    前端 html 篇
    函数声明 及 名称问题
    文件读写操作
    异常以及异常处理框架探析
    使用JDBC插入数据到ORACLE,使用标识列自增列
    session超时跃出iframe并跳到登陆页面(转载)
  • 原文地址:https://www.cnblogs.com/jiangchunsheng/p/10702840.html
Copyright © 2020-2023  润新知