• Go语言常量


    *早使用变量声明时,注意编码的问题,汉字的问题可能引起
     编译并不能通过。
     *如果你在定义变量 a 之前使用它,则会得到编译错误 undefined: a
     *如果你声明了一个局部变量却没有在相同的代码块中使用它,同样会得到编译错误
     *此外,单纯地给 a 赋值也是不够的,这个值必须被使用
     *全局变量是允许声明但不使用。 同一类型的多个变量可以声明在同一行
    * 如果你想要交换两个变量的值,则可以简单地使用 a, b = b, a,两个变量的类型必须是相同。

    *空白标识符 _ 也被用于抛弃值,如值 5 在:_, b = 5, 7 中被抛弃。

    _ 实际上是一个只写变量,你不能得到它的值。这样做是因为 Go 语言中你必须使用所有被声明的变量,
    但有时你并不需要使用从一个函数得到的所有返回值。并行赋值也被用于当一个函数返回多个返回值时,
    比如这里的 val 和错误 err 是通过调用 Func1 函数同时得到:val, err = Func1(var1)。

    常量可以用len(), cap(), unsafe.Sizeof()函数计算表达式的值。常量表达式中,函数必须是内置函数,
    否则编译不过

    eg:

    package main
    
    import "unsafe"
    const (
        a = "abc"
        b = len(a)
        c = unsafe.Sizeof(a)
    )
    
    func main(){
        println(a, b, c)
    }

    注意:在不同的引入的包中使用的println的规范不同,有的不用大写p有的需要;


    特殊常量iota

    可以认为是一个被编译器修改的常量

    iota 在 const关键字出现时将被重置为 0(const 内部的第一行之前),const 中每新增一行常量声明
    将使 iota 计数一次(iota 可理解为 const 语句块中的行索引)。
    eg:
    package main
    
    import "fmt"
    
    func main() {
        const (
                a = iota   //0
                b          //1
                c          //2
                d = "ha"   //独立值,iota += 1
                e          //"ha"   iota += 1
                f = 100    //iota +=1
                g          //100  iota +=1
                h = iota   //7,恢复计数
                i          //8
        )
        fmt.Println(a,b,c,d,e,f,g,h,i)
    }

    eg:
    package main

    import "fmt"

    const (
        i = 1 << iota
        j = 3 << iota
        k
        l
    )

    func main() {
        fmt.Println("i=", i)
        fmt.Println("j=", j)
        fmt.Println("k=", k)
        fmt.Println("l=", l)
    }

    结果为:
    i= 1
    j= 6
    k= 12
    l= 24















  • 相关阅读:
    必须掌握的八个DOS命令
    实况足球8 功略简解
    开始→运行→命令集锦
    必须掌握的八个DOS命令
    对称加密算法之DES算法
    让你的Linux像黑客帝国的画面一样炫酷
    古典密码之凯撒密码and换位密码
    用eclipse写jsp报以下错误
    mysql安装后,过一段时间,在命令行无法启动
    sql 日期函数
  • 原文地址:https://www.cnblogs.com/01black-white/p/9715086.html
Copyright © 2020-2023  润新知