Go问答技术文章
-
Go 使用 go 关键字启动 goroutine。核心结论非常轻量由调度器管理详细分析go 后面必须是函数调用。常见问题主函数结束会怎样?程序直接退出。162 收藏 -
Go 可通过 []byte(string) 将字符串转为字节数组。核心结论类型转换即可会产生拷贝常用于 IO 操作详细分析字符串和字节切片底层不同。转换后可修改字节内容。常见问题是否有零拷贝方式?不安全,不推荐。186 收藏 -
Go 使用 strconv.ParseBool 将字符串转换为布尔值。核心结论支持 true/false支持 1/0忽略大小写详细分析ParseBool 常用于配置解析。非法值会返回 error。常见问题"yes" 可以吗?不支持。476 收藏 -
接口用于定义行为规范,而不关心具体实现。核心结论实现解耦提升扩展性无需显式声明实现详细分析Go 的接口是隐式实现的,只要方法匹配即可。这种方式让代码更加灵活。常见问题接口是不是越多越好?不建议过度设计。479 收藏 -
闭包捕获的是变量本身而不是当时的值。核心结论循环变量共享执行时才取值常见并发 bug详细分析for 循环中的变量会被复用。goroutine 执行时值已改变。常见问题如何修复?传参或重新声明变量。451 收藏 -
Go 使用 strconv.Itoa 将整数转为字符串。核心结论只支持 int简单高效常用于日志详细分析int64 需用 FormatInt。常见问题Itoa 支持 int64 吗?不支持。445 收藏 -
Go 支持匿名函数和闭包。核心结论可直接定义并调用可赋值给变量支持捕获外部变量详细分析匿名函数常用于回调。也是并发编程基础。常见问题匿名函数会影响性能吗?一般不会。103 收藏 -
用 Go 入门后端开发速度更快。核心结论直接写接口实践导向强概念不过载详细分析Go 常用于 API 和服务端开发,学习即实战。能快速理解后端整体结构。常见问题需要先学很多框架吗?不需要,先掌握基础即可。426 收藏 -
Go 通过 error 是否为 nil 判断函数是否出错。核心结论error 是接口类型nil 表示成功非 nil 表示失败详细分析这是 Go 最重要的设计之一。避免异常机制。常见问题为什么不用 try catch?Go 设计哲学不同。298 收藏 -
Go 使用 strconv 包将字符串转换为整数。核心结论使用 strconv.Atoi或 strconv.ParseInt需要处理错误详细分析Atoi 适合十进制整数。ParseInt 支持指定进制和位数。常见问题转换失败会怎样?会返回 error。321 收藏 -
Go 使用 os.ReadFile 读取整个文件内容。核心结论返回字节切片适合小文件简单易用详细分析大文件应使用流式读取。避免内存占用过大。常见问题旧版本用什么?ioutil.ReadFile。452 收藏 -
defer 在函数返回值确定后、真正返回前执行。核心结论defer 后进先出可修改命名返回值与 return 顺序固定详细分析return 会先计算返回值。随后执行 defer。常见问题defer 能影响返回值吗?仅限命名返回值。193 收藏 -
Go 倡导手动依赖注入。核心结论无需复杂框架可读性强调试简单详细分析通过构造函数传递依赖。比反射方案更清晰。常见问题需要使用 wire 吗?大型项目可考虑。386 收藏 -
从初学者角度看,Go 曾不支持泛型是为了降低复杂度。核心结论设计更简单降低理解门槛强调具体实现详细分析早期 Go 设计更关注工程效率,而非抽象能力。这使新手更容易理解代码行为。常见问题现在还没有泛型吗?新版本已经支持。438 收藏 -
main 包是 Go 程序的入口包。核心结论必须包含 main 函数程序从这里开始执行只能有一个 main 包详细分析Go 程序运行时会寻找 main 包中的 main 函数。这是可执行程序的基础结构。常见问题库项目需要 main 包吗?不需要。377 收藏