Go的标准库中都使用了这两种样式。
if len(s) > 0 { ... }可以在以下
strconv软件包中找到:http :
//golang.org/src/pkg/strconv/atoi.go
if s != "" { ... }可以在以下
encoding/json包中找到:http
:
//golang.org/src/pkg/encoding/json/enpre.go
两者都是惯用的,而且很清楚。这更多的是个人品味和清晰度。
拉斯·考克斯(Russ Cox)在golang-
nuts线程中写道:
使代码清晰的代码。
如果我要查看元素x
,即使x == 0,我通常也会写len(s)> x,但是如果我关心
“是这个特定的字符串”,我倾向于写s ==“”。可以合理地假设成熟的编译器会将
len == 0和s ==“” 编译为相同的高效代码。
…使代码清晰。
正如Timmmm的回答所指出的,Go编译器在两种情况下的确生成相同的代码。



