一尘不染

在Go中测试空字符串的最佳方法是什么?

go

哪种方法最适合(更理想的)用于测试非空字符串(在Go中)?

if len(mystring) > 0 { }

要么:

if mystring != "" { }

或者是其他东西?


阅读 246

收藏
2020-07-02

共1个答案

一尘不染

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/encode.go

两者都是惯用的,而且很清楚。这更多的是个人品味和清晰度。

拉斯·考克斯(Russ Cox)在golang-
nuts线程中
写道:

使代码清晰的代码。
如果我要查看元素x
,即使x == 0,我通常也会写len(s)> x,但是如果我关心
“是这个特定的字符串”,我倾向于写s ==“”。

可以合理地假设成熟的编译器会将
len == 0和s ==“” 编译为相同的高效代码。

使代码清晰。

正如Timmmm的回答所指出的,Go编译器在两种情况下的确生成相同的代码。

2020-07-02