笔记1| 青训营

49 阅读1分钟

字节后端训练营

  1. 走进Go语言基础

课堂重点

  • 重点 1 基础语法-switch

    • C++中switch如果不在分支中加break,会跑完所有分支;Go中switch相当于C++每个分支后加break。
    • Go中switch可以代替if-else
  • 重点 2 字符串操作

    • strings.Contains()
    • strings.Count()
    • strings.HasPrefix() 检测字符串是否以指定的前缀开头
    • strings.HasSuffix()
    • strings.Index()
    • strings.Join() 将字符串切片中存在的所有元素连接为单个字符串
    • strings.Replace()
    • strings.Split()
    • strings.ToLower()
    • strings.ToUpper()
  1. Go 语言的实战案例

课堂重点

  • 重点 1 bufio包相关知识点
// 创建读取器,并将其与标准输入绑定。
reader := bufio.NewReader(os.Stdin)
// ReadString(delim byte)从输入中读取内容,直到碰到 delim 指定的字符,
// 然后将读取到的内容连同 delim 字符一起放到缓冲区。
input, _ := reader.ReadString('\n')
// 去除字符串后缀
input = strings.TrimSuffix(input, "\n")
fmt.Println(input)
  1. Go语言进阶与依赖管理

课堂重点

  • 重点 1 Waitgroup

    • Add(delta int) 计数器+delta
    • Done() 计数器-1
    • Wait() 阻塞直到计数器为0
  • 重点 2 Go依赖管理三要素

    • 配置文件,描述依赖 go.mod
    • 中心仓库管理依赖库 Proxy
    • 本地工具 go get/mod
  1. 高质量编程与性能调优实践

课堂重点

  • 重点 1 错误和异常处理
  1. 简单错误

    1. 优先使用errors.New创建匿名变量直接表示
    2. 如有格式化需求,使用fmt.Errorf
  2. 错误的Wrap和Unwrap