go语言基础学习十二

说说context包的作用?你用过哪些,原理知道吗?#

context 是 Go 标准库用于跨协程传递上下文的工具#

  1. 传递取消信号:优雅终止下游 Goroutine、请求、任务(避免协程泄露)
  2. 传递超时 / 截止时间:控制任务最大执行时长,防止服务卡死
  3. 传递请求元数据:链路追踪 ID、用户信息、鉴权信息等请求级数据
  4. 统一链路控制:一次请求衍生的所有子协程,由同一个 context 统一管控

如何在Go中实现变量的类型转换?#

  1. 显式类型转换(T(v)): 语法:目标类型(表达式),例如将 int 转为 float64:f := float64(42),但需注意精度丢失
  2. 使用 strconv 包处理字符串转换 字符串转基本类型:如 strconv.Atoi("123") 将字符串转为 int,返回值和错误信息 基本类型转字符串:如 strconv.Itoa(42) 将 int 转为字符串 "42"
  3. 类型断言(针对接口类型) 语法:value, ok := interfaceVar.(具体类型),例如从空接口 interface{} 提取字符串:s, ok := i.(string)。
  4. 强制转换(需谨慎) 使用 unsafe.Pointer 实现跨类型指针转换,如 newPtr := (*T2)