美文网首页Go简书Go语言专栏Golang
Go语言从入门到实战-数据类型

Go语言从入门到实战-数据类型

作者: codefine | 来源:发表于2019-03-16 11:29 被阅读4次

    数据类型

    基本数据类型

    // 整型
    int int8 int16 int32 int64
    
    // 无符号整型
    uint uint8 uint16 uint32 uint64 uintptr
    
    // 浮点类型
    float32 float64 
    
    // 复数
    complex64 complex128 
    
    // 布尔类型
    bool 
    
    // 字符
    string 
    
    // 字节,uint8的别名
    byte 
    
    // int32 
    //表示一个Unicode 码点
    
    rune 
    

    零值

    当一个变量或者新值被创建时, 如果没有为其明确指定初始值,go语言会自动初始化其值为此类型对应的零值, 各类型零值如下:

    bool    :false
    
    integer :0
    
    float   :0.0
    
    string:""
    
    pointer, function, interface, slice, channel, map:nil
    
     
    

    对于复合类型, go语言会自动递归地将每一个元素初始化为其类型对应的零值。比如:数组, 结构体 。

    整型占用字节问题

    int,uint整型:和机器平台有关,最小32位,占用4字节,64位,占用8字节。

    类型转换

    不支持不同类型之间隐式转换,即便是类型别名和同类型之间也不行。

    数值范围

    类型 长度(字节) 数值范围
    int8 1 -128~127 (-2^(8-1) ~ 2^7-1)
    uint8 1 0~255 (0 ~ 2^8-1)
    int16 2 -32768~32767
    uint16 2 0~65535
    int32 4 -2^31 ~ 2^31-1 (-2147483648~2147483647)
    uint32 4 0~2^32-1 (0~4294967295)
    int64 8 -2^63 ~2^63-1
    uint64 8 0~2^63
    int
    uint
    uintptr

    int占用字节数测试

    //
    //机器位数
    cpu := runtime.GOARCH
    //int占用位数
    int_size := strconv.IntSize
    
    

    string类型

    string 是值类型。默认初始化值是空字符串,不是nil(string类型零值为空字符串)

    func TestString(t *testing.T) {
    
        var s string
        t.Logf("%T %q", s, s) //string ""
    }
    

    本人Go语言接触时间不长,文章内容难免有纰漏,如有错误还请指正,欢迎交流学习。

    相关文章

      网友评论

        本文标题:Go语言从入门到实战-数据类型

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