60 Stimmen

Wie überprüft man, ob ein Array null oder leer ist?

Ich möchte überprüfen, ob mein Array leer oder null ist, und basierend darauf möchte ich zum Beispiel eine Bedingung erstellen.

if(array ==  LEER){
//etwas tun
}

Ich hoffe, ich bin klar, was ich frage, muss nur überprüfen, ob mein Array leer ist?

Grüße

114voto

Vladimir Punkte 169002
if (!array || !array.count){
  ...
}

Dies überprüft, ob das Array nicht nil ist, und falls nicht, ob es nicht leer ist.

5 Stimmen

Es funktioniert, ist aber nicht vollkommen fehlerfrei: array.count sollte [array count] sein, da es sich hier nicht um ein Eigenschaft (var) handelt.

6 Stimmen

Nein - array.count ist in diesem Kontext völlig in Ordnung. Syntaktisch gesehen, jedenfalls. Stilistisch? Zu diesem Zeitpunkt wird kein bestimmter Standard empfohlen.

4 Stimmen

Das ist dasselbe wie if (!array.count)

29voto

Andy Riordan Punkte 1144
if ([array count] == 0)

Wenn das Array nil ist, wird es auch 0 sein, da nil zu 0 abgebildet wird; daher ist es unnötig zu überprüfen, ob das Array existiert.

Außerdem sollten Sie nicht array.count verwenden, wie es einige vorgeschlagen haben. Es mag funktionieren, aber es ist keine Eigenschaft und wird jeden, der den Unterschied zwischen einer Eigenschaft und einer Methode kennt, verrückt machen, wenn sie Ihren Code lesen.

UPDATE: Ja, ich bin mir bewusst, dass Jahre später count jetzt offiziell eine Eigenschaft ist.

12voto

Vanya Punkte 4869

Du kannst es so versuchen

if ([array count] == 0)

9voto

quarac Punkte 3404

Beste Leistung.

if (array.firstObject == nil)
{
    // Das Array ist leer
}

Der richtige Weg mit großen Arrays.

3 Stimmen

Beste Antwort. Die anderen schlagen vor, die count-Eigenschaft zu verwenden, was das Aufzählen des Arrays bedeutet und bei großen Arrays zu Leistungsproblemen führen kann.

0 Stimmen

Ich ziehe diese Methode auch vor, da es uns eigentlich nicht darum geht, dass die genaue Anzahl überprüft wird, wenn wir nur prüfen wollen, ob ein Array leer ist.

9voto

willcodejavaforfood Punkte 41426

Nur um wirklich ausführlich zu sein :)

if (array == nil || array.count == 0)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X