2015-10-27 10 views
10

Qual è il modo corretto di dichiarare una tupla vuota?Swift: dichiarazione di tuple vuote

  • per gli array: var myArr : [String] = []
  • Per tuple: var myTuple: (key: String, val: Int) =()?

Esiste un modo corretto per raggiungere questo obiettivo?

+0

Sommando i valori o rendere facoltativa –

+0

è possibile inizializzare con "" e 0 –

+1

@LeoDabus "valori magici" come ' ""' e '0' può essere pericolosa se questi valori sono validi . –

risposta

17

Non esiste un valore di tupla vuoto/vuoto. È importante ricordare che le tuple non sono raccolte come Array o Dictionary. Le tuple sono tipi strutturati. Ad esempio, non è possibile scorrere una tupla con un ciclo for. Nell'esempio, myTuple è un valore singolo che contiene un numero String e uno Int.

Una tupla è come una struttura senza nome on-demand, come il seguente struct, ma se fosse possibile per essere senza nome:

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

Se si vuole modellare un valore tupla mancante, si dovrebbe rendere il tipo dell'intera tupla opzionale. Per esempio:

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

Si noti che esiste una * tupla vuota * - è il tipo restituito di funzioni che non restituiscono nulla, ad esempio "Void". Vedi https://developer.apple.com/reference/swift/void – Palimondo