后端与go常用包 | 青训营笔记

91 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天。

对于字节跳动青训营,我是充满期待的,有点go语言基础,学习发现依旧能收获满满。

这次笔记记录一下今日课程新增收获和拓展了一下便于以后看的参数格式

1.Go优势

  • 高性能,高并发是特色

  • 语法简单且严谨是我爱上他的原因

  • 标准库真的很便捷,相比其他语言稳定好多

  • 工具链真的丰富,一般自己也会用到

    go get
    go clean //清除编译文件
    go mode tidy //清理添加依赖
    go run
    go build
    go doc  //帮助文档,不过用处不大。。。
    go fmt  //格式化代码 
    go install
    go test
    go pprof
    ​
    
  • 静态编译。容器大小会相对小,同时通过反射具备一定动态性

  • 快速编译。

  • 跨平台

  • 垃圾回收

  • 国内用go的公司还是挺多的(字节,腾讯,美团,七牛云,滴滴,B站,百度等)

2.常用包简单使用

1.对fmt包参数格式拓展

%d int变量
%x, %o, %b 分别为16进制,8进制,2进制形式的int
%f, %g, %e 浮点数: 3.141593 3.141592653589793 3.141593e+00
%t 布尔变量:truefalse
%c rune (Unicode码点),Go语言里特有的Unicode字符类型
%s string
%q 带双引号的字符串 "abc" 或 带单引号的 rune 'c'
%v 会将任意变量以易读的形式打印出来
%T 打印变量的类型
%% 字符型百分比标志(%符号本身,没有其他操作)
%#[1]X  //0XDEADBEEF  #生成前缀 
%之后的[1]副词告诉Printf函数再次使用第一个操作数。第二,%后的#副词告诉Printf在用%o、%x或%X输出时生成0、0x或0X前缀。
%v 只输出所有的值
%+v 先输出字段类型,再输出该字段的值
%#v 先输出结构体名字值,再输出结构体(字段类型+字段的值)

2.strings包

     //清晰明了
    a := "hello"
    fmt.Println(strings.Contains(a, "ll"))                // true
    fmt.Println(strings.Count(a, "l"))                    // 2
    fmt.Println(strings.HasPrefix(a, "he"))               // true
    fmt.Println(strings.HasSuffix(a, "llo"))              // true
    fmt.Println(strings.Index(a, "ll"))                   // 2
    fmt.Println(strings.Join([]string{"he", "llo"}, "-")) // he-llo
    fmt.Println(strings.Repeat(a, 2))                     // hellohello
    fmt.Println(strings.Replace(a, "e", "E", -1))         // hEllo
    fmt.Println(strings.Split("a-b-c", "-"))              // [a b c]
    fmt.Println(strings.ToLower(a))                       // hello
    fmt.Println(strings.ToUpper(a))                       // HELLO
    fmt.Println(len(a))                                   // 5
    b := "你好"
    fmt.Println(len(b)) // 6

参考文献

《go语言圣经》

github.com/wangkechun/…