La tupla è un gruppo di valori diversi rappresentati come uno. Secondo Apple, un tipo di tupla è un elenco separato da virgole di zero o più tipi, racchiuso tra parentesi . È una versione in miniatura di una struttura.
Consideriamo un esempio: un nome che dice John Smith può essere dichiarato come una tupla come ("John", "Smith"). Contiene il nome e il cognome di una persona. È possibile accedere ai valori interni utilizzando la .notazione punto ( ) seguita dall'indice del valore:
var person = ("John", "Smith")
var firstName = person.0 // John
var lastName = person.1 // Smith
()è la tupla vuota - non ha elementi. Rappresenta anche il Voidtipo.
Le tuple non sono conformi al protocollo hashable. Quindi non può essere utilizzato come chiavi del dizionario.
Puoi dichiarare una tupla come qualsiasi altra variabile o costante. Per inizializzarlo avrai bisogno di un'altra tupla o di una tupla letterale. Una tupla letterale è un elenco di valori separati da virgole tra una coppia di parentesi. È possibile utilizzare la notazione del punto per modificare i valori da una tupla se è dichiarata come variabile.
var point = (0, 0)
point.0 = 10
point.1 = 15
point // (10, 15)
var origin = (x: 0, y: 0)
var point = origin
point.x = 3
point.y = 5
print(origin) // (0, 0)
print(point) // (3, 5)
È possibile assegnare un nome agli elementi da una tupla e utilizzare quei nomi per fare riferimento a essi. Il nome di un elemento è un identificatore seguito da due punti (:).
var person = (firstName: "John", lastName: "Smith")
var firstName = person.firstName // John
var lastName = person.lastName // Smith
Puoi usare le tuple per inizializzare più di una variabile su una singola riga:
var (a, b, c) = (1, 2, 3)
È possibile restituire più valori da una funzione se si imposta il tipo di risultato su una tupla.
Tieni presente che le tuple vengono passate per valore , non per riferimento.
Nel codice sopra, per la leggibilità del codice, ho usato a typealiasper pre-definire la struttura della tupla.
for (key,value) in myDictionary {
println("My key is \(key) and it has a value of \(value)")
}
Nota : il _mezzo "Non mi interessa quel valore"
for (key,_) in myDictionary {
println("My key is \(key)")
}
let http404Error = (404, "Not Found")
// http404Error is of type (Int, String), and equals (404, "Not Found")
let (statusCode, statusMessage) = http404Error
print("The status code is \(statusCode)")
// Prints "The status code is 404"
print("The status message is \(statusMessage)")
// Prints "The status message is Not Found"
let (justTheStatusCode, _) = http404Error
print("The status code is \(justTheStatusCode)")
// Prints "The status code is 404"
print("The status code is \(http404Error.0)")
// Prints "The status code is 404"
print("The status message is \(http404Error.1)")
// Prints "The status message is Not Found"
let http200Status = (statusCode: 200, description: "OK")
lo mescoleremo creando una tupla che contiene un'altra tupla.
let bar: (Int, (Bool, String)) = (1, (false, "Hello"))
print(bar.0) // print: “1”
print(bar.1.0) // print: “false”
print(bar.1.1) // print: “Hello”
var a = 5
var b = 4
(b, a) = (a, b)
Il posto migliore per usare una tupla sarebbe quando si desidera una funzione che possa restituire più tipi. Se sei uno sviluppatore Objective-C, questo concetto sembra impossibile a meno che non usi un array o un dizionario. In precedenza abbiamo dovuto superare questo problema restituendo NSArrayo NSDictionary.
Fonti: articolo medio , W eheartswift .
Godere!!
Puoi seguirmi su Medium per articoli freschi. Inoltre, connettiti con me su LinkedIn .
Se hai commenti, domande o consigli, sentiti libero di pubblicarli nella sezione commenti qui sotto!
Un punto di svolta per il rideshare Di tutte le cose che facciamo in Lyft, la coreografia dei pickup tra motociclisti e conducenti è una delle più complesse e consequenziali. L'inchiodamento di questa coreografia dipende dal fatto che Lyft faccia bene molte cose, ma è essenziale semplicemente mantenere i ciclisti al passo.
: Ciclo dall'avvio dell'app allo spegnimento: usabilità gestendo la memoria o i dati ⬆️ La sicurezza può essere elaborata UIApplication, situazione AppDelegate: definisce le funzioni in cui l'oggetto AppDelegate riceve il messaggio inviato dall'oggetto UIApplication ed esegue ciascuna Non in esecuzione: lo stato in cui l'app non è in esecuzione Inattivo: Lo stato in cui l'app è in esecuzione ma non vengono ricevuti eventiActive: lo stato in cui l'app è in esecuzione e si verifica un eventoBackground: lo stato in cui l'app è in background ma il codice viene eseguitoSuspened: lo stato in cui l'app è in background e non esegue codice per essere funzioni delegate nel file AppDelegate.swift SceneDelegate Per rispondere bene alla funzione di scena multipla supportata da iOS 13 in poi AppDelegate / SceneDelegate AppDelegate 1.
Per evitare ambiguità verranno utilizzati i seguenti termini; Autenticatore; Il telefono cellulare utilizzato per effettuare il login Sito web; Il sito Web o l'applicazione che l'utente sta utilizzando per effettuare la richiesta di accesso al Servizio; Il fornitore che fornisce il servizio dato, ad es
Se vogliamo continuare a prosperare su questo pianeta, dovremo avere conversazioni pericolose. Quelli che mettono in discussione ciò che abbiamo fatto, ciò che stiamo facendo e ciò che attualmente intendiamo continuare a fare (o stiamo pianificando di fare).
Il prurito alla mano si diffuse mentre mercanteggiavo con il libraio locale per un altro libro. Questo libro, come il resto che ho acquistato di recente, troverebbe il suo trono nella mia pila "Da leggere" (TBR); eppure l'ho comprato.
Quando cresci tendi a sentirti dire che il mondo è così com'è e che la tua vita è vivere la tua vita dentro il mondo, senza mai rischiare la vita, basta seguire un percorso prestabilito e morire alla fine, e cercare di non farlo sfondare troppo i muri. Ma questa è una vita molto limitata.