字符串在 Go 内部中是一个结构体,一个字段记录长度,一个字段记录指针位置。
判断字符串为空最常见的是 data == ""
这样,之前我认为这里分配了一个空字符串会占用分配的时间,所以我把一些判断都改成了 len(data) == 0
这样就不用分配一个空字符串的空间了,效率应该会提升。
1 | package main |
但最近我在 Go 源码中看到很多使用第一种判断是否为空的写法,这让我有点怀疑是否我的优化是否正确。
1 | package comp |
测试输出:
1 | goos: windows |
结果一致,另外看到内存也都没有,这说明 go 在编译时已经对这个做了优化。