2015-10-27 11 views
10

Jaki jest prawidłowy sposób deklarowania pustej krotki?Swift: Deklaracja pustych krotek

  • dla tablic: var myArr : [String] = []
  • Dla krotek: var myTuple: (key: String, val: Int) =()?

Czy istnieje właściwy sposób, aby to osiągnąć?

+0

dodanie wartości lub czyni go opcjonalnie –

+0

można zainicjować go z „” i 0 –

+1

@LeoDabus „Wartości magiczne” jak '„”' i '0' mogą być niebezpieczne, jeżeli te wartości są ważne . –

Odpowiedz

17

Nie ma czegoś takiego jak pusta/niewypełniona wartość krotki. Należy pamiętać, że krotki nie są kolekcjami, takimi jak Array lub Dictionary. Krotki są typami strukturalnymi. Na przykład nie można wykonać iteracji przez krotkę z pętlą for. W twoim przykładzie myTuple jest pojedynczą wartością, która ma zawierać String i Int.

Krotka jest jak nienazwanej konstrukcji na żądanie, takich jak następującej struktury, ale gdyby to było możliwe, aby była ona bezimienny:

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

Jeśli chcesz modelować brakujących wartości krotka, należy sprawiają, że typ całej krotki jest opcjonalny. Na przykład:

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

Należy zauważyć, że istnieje * pusta krotka * - jest to typ zwracany funkcji, które nie zwracają niczego, tj. 'Void'. Zobacz https://developer.apple.com/reference/swift/void – Palimondo