Go で空の文字列をテストする最良の方法は何ですか? 質問する

Go で空の文字列をテストする最良の方法は何ですか? 質問する

空でない文字列をテストするのに最適な(最も慣用的な)方法はどれですか(Go の場合)?

if len(mystring) > 0 { }

または:

if mystring != "" { }

または、他の何か?

ベストアンサー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

どちらも慣用句であり、十分に明確です。これはむしろ個人の好みと明瞭さの問題です。

ラス・コックスはgolang-nuts スレッド:

コードを明確にするもの。
要素 x を確認する場合は通常、
x == 0 の場合でも len(s) > x と記述しますが、「この特定の文字列であるかどうか」を気にする場合は
s == "" と記述する傾向があります。


成熟したコンパイラは、len(s) == 0 と s == "" を同じ効率的なコードにコンパイルすると想定するのが妥当です
。...

コードを明確にします。

指摘されているようにTimmmmの答えただし、Go コンパイラはどちらの場合でも同一のコードを生成します。

おすすめ記事