-
Go 使用 strconv.ParseFloat 将字符串转换为浮点数。核心结论使用 strconv.ParseFloat需指定精度位数返回 float64 和 error详细分析ParseFloat 支持科学计数法。常用于解析配置和请求参数。常见问题为什么返回 float64?Go 默认浮点类型。
-
Go 使用 time.Parse 解析时间字符串。核心结论需要指定 layoutlayout 是固定模板详细分析layout 使用 2006-01-02 15:04:05。常见问题为什么这么奇怪?这是 Go 的设计约定。
-
Go 标准库即可支撑高性能 HTTP 服务。核心结论net/http 性能稳定支持高并发生态成熟详细分析多数业务无需替换 HTTP 引擎。优化重点在业务逻辑。常见问题一定要用 Gin 吗?不一定。
-
defer 在函数返回值确定后、真正返回前执行。核心结论defer 后进先出可修改命名返回值与 return 顺序固定详细分析return 会先计算返回值。随后执行 defer。常见问题defer 能影响返回值吗?仅限命名返回值。
-
slice 是对 array 的封装,更常用也更灵活。核心结论array 长度固定slice 长度可变实际开发常用 slice详细分析array 更偏底层,slice 更符合业务需求。大多数 Go 代码中都会优先使用 slice。常见问题新手应该直接学 slice 吗?是的。
-
Go 语言中将字符串转换为数字通常使用 strconv 包。核心结论字符串转 int 使用 strconv.Atoi更通用的方法是 strconv.ParseInt转换失败会返回 error详细分析strconv.Atoi 适用于十进制整数字符串。strconv.ParseInt 可指定进制和位数,更灵活。常见问题字符串不是数字会怎样?会返回非空 error。
-
Go 非常适合编写高性能中间件。核心结论标准库强大网络模型成熟部署简单详细分析Go 的 net/http、context 等组件非常适合中间件开发。常用于鉴权、限流、日志、追踪。常见问题Go 中间件性能会有瓶颈吗?合理设计基本不会。
-
Go 性能优化应从架构和代码两方面入手。核心结论减少内存分配使用 pprof优化并发模型详细分析性能瓶颈往往来自不必要的对象创建。pprof 是必学工具。常见问题Go 性能会不如 C 吗?业务系统中差距可忽略。
-
Go 可通过 []byte(string) 将字符串转为字节数组。核心结论类型转换即可会产生拷贝常用于 IO 操作详细分析字符串和字节切片底层不同。转换后可修改字节内容。常见问题是否有零拷贝方式?不安全,不推荐。
-
context 是 Go 后端工程中的核心组件。核心结论控制请求生命周期统一取消信号传递请求范围数据详细分析context 可避免 goroutine 泄漏。是微服务和 API 的基础能力。常见问题context 能当全局变量吗?不推荐。
-
errors.Is 支持错误链判断。核心结论支持 wrapped error兼容 fmt.Errorf更健壮详细分析直接比较会忽略包装层。Is 会递归检查。常见问题errors.As 用来做什么?用于类型断言。
-
Go 可以写脚本,但并非主要定位。核心结论更偏向工程化启动成本略高适合长期维护工具详细分析相比脚本语言,Go 更适合构建稳定工具。一次开发,多次使用是其优势。常见问题Go 能替代 Shell 吗?在复杂场景下可以。
-
系统化准备是 Go 面试关键。核心结论理解并发掌握常见坑总结项目详细分析项目比框架更重要。能讲清设计取舍是加分项。常见问题需要刷很多题吗?不必。
-
Go 新手不需要一开始就学习并发。核心结论先掌握基础语法理解顺序执行并发可后期学习详细分析并发是 Go 的优势,但并非入门必须。基础不牢容易造成理解混乱。常见问题不学并发算会 Go 吗?算入门,但不算进阶。
-
interface 的 nil 包含类型和值两个部分。核心结论类型不为空值为空整体不等于 nil详细分析var err error = (*MyErr)(nil)。err != nil。常见问题如何避免?返回真正的 nil。