Go基础_1_2 数据类型

Tutorial: Go初级 Category: Go Published: 2026-04-07 13:58:26 Views: 21 Likes: 0 Comments: 0
package main

import "fmt"

func main() {
    /*
        Go语言的数据类型:
        1.基本数据类型:
            布尔类型:bool
                取值:true,false
            数值类型:
                整数:int
                    有符号:最高位表示符号位,0正数,1负数,其余位表示数值
                        int8:(-128 到 127)
                        int16:(-32768 到 32767)
                        int32:(-2147483648 到 2147483647)
                        int64:(-9223372036854775808 到 9223372036854775807)
                    无符号:所有的位表示数值
                        uint8: (0 到 255)
                        uint16:(0 到 65535)
                        uint32:(0 到 4294967295)
                        uint64: (0 到 18446744073709551615)

                    int, uint

                    byte:uint8
                    rune:int32
                浮点:生活中的小数
                    float32,float64
                复数:complex,
            字符串:string
        2.复合数据类型
            array,slice,map,function,pointer,struct,interface,channel。。。
    */

    //1.布尔类型
    var b1 bool
    b1 = true
    fmt.Printf("%T,%t\n", b1, b1) // bool,true
    b2 := false
    fmt.Printf("%T,%t\n", b2, b2) // bool,false

    //2.整数
    var i1 int8
    i1 = 100
    fmt.Println(i1)
    var i2 uint8
    i2 = 200
    fmt.Println(i2)

    var i3 int
    i3 = 1000
    fmt.Println(i3)
    //语法角度:int,int64不认为是同一种类型
    //var i4 int64
    //i4 = i3 //cannot use i3 (type int) as type int64 in assignment

    var i5 uint8
    i5 = 100
    var i6 byte
    i6 = i5
    fmt.Printf("%T,%v\n", i6, i6) // uint8,100
    fmt.Println(i5, i6)           // 100 100

    var i7 = 100
    fmt.Printf("%T,%d\n", i7, i7) // int,100

    //浮点
    var f1 float32
    f1 = 3.14
    var f2 float64
    f2 = 4.67
    fmt.Printf("%T,%.2f\n", f1, f1) // float32,3.14
    fmt.Printf("%T,%.3f\n", f2, f2) // float64,4.670
    fmt.Println(f1)                 // 3.14

    // 小数默认是 float64
    var f3 = 2.55
    fmt.Printf("%T\n", f3) // float64

}