哪种方法最适合测试非空字符串(在 Go 中)?
if len(mystring) > 0 { }
Or:
if mystring != "" { }
或者是其他东西?
这两种样式都在 Go 的标准库中使用。
if len(s) > 0 { ... }
可以在strconv
包裹:http://golang.org/src/pkg/strconv/atoi.go http://golang.org/src/pkg/strconv/atoi.go
if s != "" { ... }
可以在encoding/json
包裹:http://golang.org/src/pkg/encoding/json/encode.go http://golang.org/src/pkg/encoding/json/encode.go
两者都是惯用语,而且足够清晰。这更多的是个人品味和清晰度的问题。
拉斯·考克斯 (Russ Cox) 在一篇文章中写道golang 坚果线程 https://groups.google.com/forum/#!topic/golang-nuts/7Ks1iq2s7FA:
使代码清晰的一个。
如果我要查看元素 x 我通常会写
len(s) > x,即使 x == 0,但如果我关心
“是这个特定的字符串吗”我倾向于写 s == ""。
可以合理地假设成熟的编译器会编译
len(s) == 0 和 s == "" 到相同的、高效的代码中。
...
让代码清晰。
正如指出的蒂姆的回答 https://stackoverflow.com/a/54804858/694331,Go 编译器在这两种情况下都会生成相同的代码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)