美文网首页
Go语言学习之路——01Go语言基础变量和常量

Go语言学习之路——01Go语言基础变量和常量

作者: 鸡蛋挂面 | 来源:发表于2021-05-31 17:34 被阅读0次

    一、标识符的命名

    标识符是程序员定义的具有特殊意义的词
    比如:变量名、常量名、函数名
    与大多数编程语言一样,标识符的命名规范是,由字母数字_(下划线)组成,并且只能以字母_开头。

    二、变量

    变量是用来存储数据的,不用的数据类型所对应的变量也不一样,数据是保存在内存中的,当程序需要用到数据的时候,会通过内存地址去查找数据,很不方便,所以就用变量来将这个数据的内存地址保存起来。
    常见变量的数据类型有:整型、浮点型、布尔型等。

    三、变量的声明与初始化

    常规声明

    Go语言的变量声明格式为:

    var 变量名 变量类型
    

    变量声明以关键字var开头,变量类型放在变量的后面,行尾无需分号。 举个例子:

    var name string
    var age int
    

    批量声明

    当需要声明多个变量时,需要写很多个var,会相对繁琐一点,可以使用合并同类项的方法批量声明:

    var (
        a string
        b int
        c bool
        d float32
    )
    

    变量的初始化

    在Go语言中,如果只声明了一个变量但是没有对其赋值,系统会默认对每个变量初始化成其类型的默认值。
    例如: 整型和浮点型变量的默认值为0。 字符串变量的默认值为空字符串。 布尔型变量默认为false

    01.初始化时赋值

    可以在声明变量的时候为其指定初始值,格式如下:

    var 变量名 类型 = 表达式
    

    例子:

    var name string = "Zhangsan"
    var age int = 18
    

    或者一次初始化多个变量

    var name, age = "Zhangsan", 20
    
    02.初始化后赋值

    常见的赋值方式:

    var name string
    name = "zhangsan"
    
    03.直接赋值

    也叫类型推导,根据值判断变量的数据类型

    var name = "zhangsan"
    var age = "18"
    
    04.短变量声明

    在函数内部,可以使用更简略的:=方式声明并初始化变量。

    package main
    
    import "fmt"
    
    func main() {
        n := 10
        m := 200 // 此处声明局部变量m
        fmt.Println(m, n)
    }
    

    Go语言中非全局变量声明后必须使用,不然在编译的时候会报错

    四、常量

    相对于变量,常量是保持不变的。常量的声明和变量的声明非常类似,只是把var换成了const,常量在定义的时候必须赋值。

    const pi = 3.1415
    const age = 22
    

    批量声明

    const (
        n1 = 100
        n2
        n3
    )
    

    const同时声明多个常量时,如果省略了值则表示和上面一行的值相同

    五、iota

    iotago语言的常量计数器,只能在常量的表达式中使用。
    iota在const关键字出现时将被重置为0const中每新增一行常量声明将使iota计数一次(iota可理解为const语句块中的行索引)。 使用iota能简化定义,在定义枚举时很有用。

    const (
            n1 = iota //0
            n2        //1
            n3        //2
            n4        //3
        )
    

    使用_跳过某些值

    const (
            n1 = iota //0
            n2        //1
            _
            n4        //3
        )
    

    iota声明中间插队

    const (
            n1 = iota //0
            n2 = 100  //100
            n3 = iota //2
            n4        //3
        )
        const n5 = iota //0
    

    多个iota定义在一行

    const (
            a, b = iota + 1, iota + 2 //1,2
            c, d                      //2,3
            e, f                      //3,4
        )
    

    定义数量级 (这里的<<表示左移操作,1<<10表示将1的二进制表示向左移10位,也就是由1变成了10000000000,也就是十进制的1024。同理2<<2表示将2的二进制表示向左移2位,也就是由10变成了1000,也就是十进制的8。)

    const (
            _  = iota
            KB = 1 << (10 * iota)
            MB = 1 << (10 * iota)
            GB = 1 << (10 * iota)
            TB = 1 << (10 * iota)
            PB = 1 << (10 * iota)
        )
    

    参考文章:https://www.liwenzhou.com/posts/Go/01_var_and_const/

    相关文章

      网友评论

          本文标题:Go语言学习之路——01Go语言基础变量和常量

          本文链接:https://www.haomeiwen.com/subject/oasbsltx.html