美文网首页
golang学习笔记(三)数据类型

golang学习笔记(三)数据类型

作者: NIIIICO | 来源:发表于2022-11-08 17:18 被阅读0次
    1、iota 关键字

    (1)iota 每一行加1
    (2)iota 遇到const关键字 重置为0
    (3)iota 每一行的值相等(有点类似于行号)

    package main
    
    import "fmt"
    
    func main() {
        // iota 每一行加1
        const (
            a1 = iota
            a2 = iota
            a3 = iota
            a4 = iota
        )
        fmt.Printf("a1 = %d, a2 = %d, a3 = %d, a4 = %d \n", a1, a2, a3, a4)
    
        // iota 遇到const关键字 重置为0
        const b = iota
        fmt.Printf("b = %d \n", b)
    
        // iota 简写
        const (
            c1 = iota
            c2
            c3
            c4
        )
        fmt.Printf("c1 = %d, c2 = %d, c3 = %d, c4 = %d \n", c1, c2, c3, c4)
    
        // iota 每一行值相等
        const (
            d1         = iota
            d2, d3, d4 = iota, iota, iota
        )
        fmt.Printf("d1 = %d, d2 = %d, d3 = %d, d4 = %d \n", d1, d2, d3, d4)
    
    }
    
    2、类型
    类型 名称 长度 初始值 备注
    bool 布尔类型 1 false
    byte 字节类型 1 0 uint8别名
    rune 字符类型 4 0 专用于存储unicode编码,等价于uint32
    int,uint 整形 4或8 0 32位系统4字节
    64位系统8字节
    int8,uint8 整形 1 稳定性0 int8:-128 ~ 127
    uint8:0 ~ 255
    int16,uint16 整形 2 0 int16:-32768 ~ 32767
    uint16:0 ~ 65535
    int32,uint32 整形 4 0
    int64,uint64 整形 8 0
    float32 浮点型 4 0.0 小数位精确到7位
    float64 浮点型 8 0.0 小数位精确到15位
    complex64 复数类型 8
    complex128 复数类型 16
    uintptr 整形 4或8 足够容纳指针位数大小的整数类型
    string 字符串 "" utf-8字符串
    3、fmt格式化
    格式 备注 举例 输出
    %% 输出% fmt.Printf("%%") %
    %b 2进制整数数值表示的数字(基数为2)
    或用科学记数法表示的指数为2的浮点数
    fmt.Printf("%b", 5) 101
    %c 字符型,将数字按照ASCII码转换为对应的字符 fmt.Printf("%c", 97) a
    %d 十进制整数数值 fmt.Printf("%d", 11) 11
    %e 科学记数法e表示的浮点数或复数 fmt.Printf("%e", 10.1) 1.010000e+01
    %E 科学记数法E表示的浮点数或复数 fmt.Printf("%E", 10.1) 1.010000E+01
    %f 标准计数法表示的浮点数或复数 fmt.Printf("%f", 10.1) 10.100000
    %g %e或%f表示的浮点数或复数,以最紧凑的方式输出 fmt.Printf("%g", 10.1) 10.1
    %G %E或%f表示的浮点数或复数,以最紧凑的方式输出 fmt.Printf("%G", 10.1) 10.1
    %o 8进制表示的数字(基数为8) fmt.Printf("%o", 10) 12
    %p 16进制表示的一个值得地址,前缀0x,字母使用小写的a-f表示 var a = 11
    fmt.Printf("%p", &a)
    0xc0000a6058
    %q go语法安全的转义 fmt.Printf("%q", 0x56FD)
    %s 字符串 fmt.Printf("%s", "123") 123
    %t 以true或false输出布尔值 fmt.Printf("%t", true) true
    %T 输出值的类型 fmt.Printf("%T", 10.1) float64
    %U 用Unicode表示法表示的字符 fmt.Printf("%U", '国') U+56FD
    %v 使用默认格式输出内置的或自定义的值,或者String()输出的自定义值 fmt.Printf("%v %v", 10, 10.1) 10 10.1
    %x 16进制,小写字母a-f fmt.Printf("%x", 10) a
    %X 16进制,大写字母A-F fmt.Printf("%X", 10) A
    4、输入

    输入必须加 "&"

    package main
    
    import "fmt"
    
    func main() {
        var a int
        fmt.Printf("请输入:")
    
        // fmt.Scanf("%d", &a)
        fmt.Scan(&a)
        fmt.Printf("输入的结果是:%d", a)
    }
    
    5、类型别名

    通过 type 别名 类型 的方式定义别名

    package main
    
    import "fmt"
    
    func main() {
        type bigint int64
        var a bigint = 10
    
        fmt.Printf("%T\n", a)
    
        type (
            long int64
            char byte
        )
    
        var b long = 20
        var c char = 'a'
        fmt.Printf("%T %T\n", b, c)
    }
    

    相关文章

      网友评论

          本文标题:golang学习笔记(三)数据类型

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