2015-10-27 9 views
10

Wie deklariere ich ein leeres Tupel?Swift: Leere Tupel deklarieren

  • Für Arrays: var myArr : [String] = []
  • Für Tupel: var myTuple: (key: String, val: Int) =()?

Gibt es einen richtigen Weg, dies zu erreichen?

+0

die Werte hinzufügen oder es optional –

+0

machen Sie es mit „initialisieren“ und 0 –

+1

@LeoDabus „magische Werte“ wie '„“' und '0' kann gefährlich sein, wenn diese Werte gelten . –

Antwort

17

Es gibt keinen leeren/ungefüllten Tupelwert. Es ist wichtig zu beachten, dass Tupel keine Sammlungen wie Array oder Dictionary sind. Tupel sind strukturierte Typen. Beispielsweise können Sie ein Tupel mit einer for-Schleife nicht durchlaufen. In Ihrem Beispiel ist myTuple ein einzelner Wert, der zufällig eine String und eine Int enthält.

Ein Tupel ist wie ein On-Demand-unbenannte Struktur, wie die folgende Struktur, aber wenn es möglich wäre, sie nicht namentlich zu sein:

struct MyStruct { 
    let key: String 
    let val: Int 
} 

Wenn Sie einen fehlenden Tupel Wert modellieren möchten, sollten Sie mache den Typ des gesamten Tupels optional. Zum Beispiel:

var myTuple: (key: String, val: Int)? = nil 
+4

Beachten Sie, dass es ein * leeres Tupel * gibt - es ist der Rückgabetyp von Funktionen, die nichts zurückgeben, d. H. 'Void'. Siehe https://developer.apple.com/reference/swift/void – Palimondo

Verwandte Themen