美文网首页
再读 Golang 圣经

再读 Golang 圣经

作者: 追风骚年 | 来源:发表于2022-04-30 16:00 被阅读0次

    收获还是不小

    字符串

    fmt.Println(string(0x03c0)) // "π"
    

    code 可以去 unicode.org 查询

    常量

    const (
        a = 1
        b
        c = 2
        d
    )
    
    fmt.Println(a, b, c, d) // "1 1 2 2"
    

    高精度常量

    const (
        _ = 1 << (10 * iota)
        KiB // 1024
        MiB // 1048576
        GiB // 1073741824
        TiB // 1099511627776             (exceeds 1 << 32)
        PiB // 1125899906842624
        EiB // 1152921504606846976
        ZiB // 1180591620717411303424    (exceeds 1 << 64)
        YiB // 1208925819614629174706176
    )
    
    fmt.Println(YiB) //  panic
    fmt.Println(YiB/ZiB) // "1024"
    
    

    切片初始化

    months := [...]string{1: "January", /* ... */, 12: "December"}
    Q2 := months[4:7]
    fmt.Println(Q2)
    

    你一定想用 map 表示,其实 key 为 int 的这种用切片更方便

    字符串 padding

        fmt.Printf("%10s\n", "aaa")            // 字符宽度为 10,文字右对齐
        fmt.Printf("%-10s\n", "aaa")           // 字符宽度为 10,负号可以将文字左对齐
        fmt.Printf("%*s%s\n", 7, "", "aaa")    // %*s 插入任意宽度空格,后接入一个填充空格
        fmt.Printf("%*s%s\n", 7, "bb", "aaa")  // %*s 插入任意宽度空格,后接入一个填充右对齐字符"bb"
        fmt.Printf("%-*s%s\n", 7, "bb", "aaa") // %*s 插入任意宽度空格,后接入一个负号填充左对齐字符"bb"
    
    //       aaa
    //aaa       
    //       aaa
    //     bbaaa
    //bb     aaa
    
    

    这里其实引出了我另外一个疑问,其实之前以为 % 和后面的参数列表的个数是匹配的,其实看到这也不然。真的是看见的越多回答问题越不敢肯定,你没看过事物的另外一面,又怎能妄言断定。

    相关文章

      网友评论

          本文标题:再读 Golang 圣经

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