在编写 Go 应用程序时,我发现自己经常可以选择使用 []byte
或 string
。除了 []byte
明显的可变性之外,我如何决定使用哪一个?
我有几个用例示例:
- 一个函数返回一个新的
[]byte
。既然 slice 容量是固定的,那有什么理由不返回字符串呢?
默认情况下, []byte
的打印效果不如string
,因此我经常发现自己转换为string
以进行日志记录。它应该一直是string
吗?- 添加
[]byte
时,始终会创建一个新的底层数组。如果要添加的数据是常量,为什么不应该是string
?
最佳答案
我的建议是在处理文本时默认使用字符串。但如果满足以下条件之一,请改用 []byte:
[]byte 的可变性将显着减少所需的分配数量。
您正在处理使用 []byte 的 API,避免转换为字符串将简化您的代码。
关于string - 何时在 Go 中使用 []byte 或 string?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10826651/