美文网首页
区块链 go 变量声明与定义

区块链 go 变量声明与定义

作者: ze__lin | 来源:发表于2018-01-18 00:22 被阅读0次

    go中变量声明,定义有好几种形式

    //声明并初始化一个变量

    var varName type
    //定义一个 type 类型的变量 varName
    var number int

    //声明初始化多个变量
    var varName1, varName2 type
    //定义两个 type 类型的变量 varName1 和 varName2
    var a, b, c,d int = 1, 2, 3, 4

    //多个变量的声明(注意小括号的使用)

    var(
    
       num  int
    
       name string
       
       isSelect bool //布尔类型
    
    )
    

    //声明时不指名类型,通过初始化直接赋予

    //自行判断变量类型,一旦判断不可改变
    var str = "abc" //string 类型 
    
    var b = true    //bool 类型
    

    //简化写法,开发中经常用到

    b := true
    //相当于下面写法 
    var b bool = true
    
    str := "abc"
    //相当于下面写法 
    var str string = “abc”
    
    常量 const

    常量是一个简单值的标识符,在程序运行时,不会被修改的量。
    常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。

    常量的定义格式:
    const identifier [type] = value
    可以省略类型说明符 [type],因为编译器可以根据变量的值来推断其类型。

    const LENGTH int = 10//显示声明
    const WIDTH = 5 //隐示声明
    多个相同类型的声明可以简写为:
    const c_name1, c_name2 = value1, value2

    const a, b, c = 1, false, "str" //多重赋值

    package main
    
    import "fmt"
    
    func main() {
        const LENGTH int = 10 //显示声明
        // LENGTH = 100  //常量这么写会报错
        const WIDTH = 5 //隐示声明
        var area int
        const a, b, c = 1, false, "str" //多重赋值
    
        area = LENGTH * WIDTH
        fmt.Printf("面积为 : %d", area)
        println()
        println(a, b, c)
    }
    

    以上实例运行结果为

    面积为 : 50
    1 false str
    

    常量还可以用作枚举:

    package main
    
    import "fmt"
    
    func main() {
        const (
            Unknown = 0
            Female  = 1
            Male    = 2
            F
            M
        )
        fmt.Println(Unknown, Female, Male, F, M)
    
    }
    

    数字 0、1 和 2 分别代表未知性别、女性和男性。
    F M 的值和Male一样 都是2

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

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

    以上实例运行结果为:
    abc 3 16

    iota

    iota,特殊常量,可以认为是一个可以被编译器修改的常量。
    在每一个const关键字出现时,被重置为0,然后再下一个const出现之前,每出现一次iota,其所代表的数字会自动增加1。
    iota 可以被用作枚举值:

    package main
    
    import "fmt"
    
    func main() {
        const (
            Unknown = iota
            Female
            Male
        )
        fmt.Println(Unknown, Female, Male)
    
    }
    

    以上实例运行结果为:
    0, 1, 2

    //iota...相当于给下面的常量依次++
    //无符号 只能存正数

    相关文章

      网友评论

          本文标题:区块链 go 变量声明与定义

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