美文网首页
Go 基础篇-变量

Go 基础篇-变量

作者: 酒深巷子Ya | 来源:发表于2017-04-26 12:48 被阅读36次

    一、Go内建变量类型

    bool
    string
    (u)int、(u)int8、(u)int16、(u)int32、(u)int64
    uintptr 指针
    byte
    rune 字符型,32 位,类比 char
    float32、float64
    complex32、complex64 复数 
    
    类型转换 type(varName)
    func typeConversion () {
        var int a = 5
        var b = "str"
        c := 3
        var int d
        d = int(a / c) 
        fmt.Println(d, b)
    }
    

    二、变量定义

    • 四种变量定义类型:
    第一种完全体:var name type = value
    第二种简单体:var name = value //name根据value的类型自动识别类型
    第三种最简体:name := value //只适用于函数体内,name根据value的类型自动识别类型
    第四种包内聚合定义: var (name1 = value1 name2 = value2 ...)
    
    变量定义
    func definedVariable() {
        var a int = 5
        var b = "str"
        c, d := 3, "string"
        var e int   //整型默认初始值为0
        var f string //字符串默认初始值为""
        var g bool  //bool默认初始值为false
    }
    //包内变量
    var {
        name1 = 100
        name2 = "abc"
        ...
    }
    

    三、变量和枚举类型

    • 两种常量定义:常量定义必须赋值
    第一种完全体:const name type = value 
    第二种简单体:const name = value //name根据value的类型自动识别类型
    
    定义常量
    func definedConst () {
        const fileName string = "readme.txt"
        const a, b = 12, 5
        var c int
        c = int(math.Sqrt(a*a + b*b)) // 由于类型不定,所以这里不需要强转,如果定义为 const a, b int = 3, 4,则需要强转
        fmt.Println(fileName, a, b, c)
    }
    
    • 枚举类型:
      在Go语言中没有枚举类型,使用const来代替
    自定义
    const(
    name1 = value1
    name2 = value2
     ...
    )
    iota 实现枚举自增
    iota 表达式枚举:const ( name1=iota表达式 name2 )
    
    定义枚举
    func dedinedEnmu () {
        const (
            doctor_type = 0
            nurse_type = 1
            pharmacist_type = 2
        )
    fmt.Println(dcotor_type, nurse_type, pharmacist_type) // 0,1,2
    
    const (
            doctor_type = iota
            nurse_type
            pharmacist_type 
        )
    fmt.Println(dcotor_type, nurse_type, pharmacist_type) // 0,1,2
    }
    

    相关文章

      网友评论

          本文标题:Go 基础篇-变量

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