1. ホーム
  2. go

[解決済み] 空のスライスをチェックするにはどうしたらいいですか?

2022-12-20 22:02:49

質問

値がない場合、空の配列を返す関数を呼び出しています。

これを実行すると、うまくいきません。

if r == [] {
    fmt.Println("No return value")            
}

私が使っているワークアラウンドは

var a [0]int
if r == a {
    fmt.Println("No return value")            
}

しかし、戻り値を確認するためだけに変数を宣言するのは、正しいとは思えません。何か良い方法はないでしょうか?

どのように解決するのですか?

len() は、スライスや配列の要素数を返します。

仮定すると whatever() が呼び出す関数だとすると、次のようなことができます。

r := whatever()
if len(r) > 0 {
  // do what you want
}

または、項目が必要ない場合は

if len(whatever()) > 0 {
  // do what you want
}