it-swarm.com.de

Wie überprüfe ich, ob ein Stück leer ist?

Ich rufe eine Funktion auf, die ein leeres Array zurückgibt, wenn keine Werte vorhanden sind.

Wenn ich das mache, funktioniert es nicht:

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

Die Arbeit, die ich verwende, ist:

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

Aber eine Variable zu deklarieren, nur um den Rückgabewert zu prüfen, scheint nicht richtig. Was ist der bessere Weg, dies zu tun?

36
Kshitiz Sharma

len() gibt die Anzahl der Elemente in einem Slice oder Array zurück.

Angenommen, whatever() ist die von Ihnen aufgerufene Funktion. Sie können beispielsweise Folgendes tun:

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

oder wenn Sie die Artikel nicht benötigen

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

Sie können einfach die len-Funktion verwenden.

if len(r) == 0 {
    fmt.Println("No return value")            
}

Da Sie jedoch Arrays verwenden, unterscheidet sich ein Array vom Typ [0]int (ein Array von int mit der Größe 0) von [n]int (n Array von int mit der Größe n) und sind nicht miteinander kompatibel.

Wenn Sie über eine Funktion verfügen, die Arrays mit unterschiedlichen Längen zurückgibt, sollten Sie Slices verwenden. Die Funktion kann nur mit einem Array-Rückgabetyp mit einer bestimmten Länge deklariert werden (z. B. func f() [n]int, n ist eine Konstante) und dieses Array enthält n Werte ( Sie werden auf Null gesetzt), auch wenn die Funktion niemals etwas in dieses Array schreibt.

11
abhink

Sie können die eingebaute Funktion von Golang verwenden 

len ()

Es hilft Ihnen leicht zu finden, dass ein Slice leer ist oder nicht.

if len( yourFunction() ) == 0 {
    // It implies that your array is empty.
}
0
ASHWIN RAJEEV