Ich swift
fange The Swift Programming Language
an zu lernen, indem ich dem von Apple bereitgestellten iBookon Swift folge . Das Buch sagt, um ein leeres Wörterbuch zu erstellen, sollte man [:]
dasselbe verwenden, während man das Array deklariert als []
:
Ich habe ein leeres Array wie folgt deklariert:
let emptyArr = [] // or String[]()
Beim Deklarieren eines leeren Wörterbuchs wird jedoch ein Syntaxfehler angezeigt:
let emptyDict = [:]
Wie deklariere ich ein leeres Wörterbuch?
ios
swift
dictionary
z22
quelle
quelle
array :() dictionary :{}
print - Anweisungenlet arr = [] let dict = [:] println("array :\(arr)") println("dictionary :\(dict)")
Antworten:
Hinweis : Wenn Sie den Inhalt des Wörterbuchs im Laufe der Zeit ändern möchten, deklarieren Sie es als
var
(Variable). Sie können ein leeres Wörterbuch alslet
(Konstante) deklarieren, aber es ist sinnlos, wenn Sie beabsichtigen, seinen Inhalt im Laufe der Zeit zu ändern, da die Konstante nach ihrer Initialisierung nicht mehr geändert werden kann.Alte Antwort :
Das Erstellen eines leeren Wörterbuchs
<String, String>
sieht wie folgt aus:quelle
var
wie ich es Ihnen vorgeschlagen habe: developer.apple.com/library/prerelease/ios/documentation/Swift/…__NSDictionaryI
. Versuchen Sie, ein Element hinzuzufügen, dasemptyDict
beim Kompilieren fehlschlägt.Sie können nur verwenden,
[:]
wenn Typinformationen verfügbar sind.In diesem Fall müssen Sie dies explizit angeben:
var
bedeutet, dass es veränderbar ist, sodass Sie Einträge hinzufügen können. Umgekehrt, wenn Sie es zu einem machen, könnenlet
Sie es nicht weiter modifizieren (let
bedeutet konstant).Sie können die
[:]
Kurzschreibweise verwenden, wenn beispielsweise auf die Typinformationen geschlossen werden kannIm letzten Beispiel ist bekannt, dass das Wörterbuch einen Typ
Dictionary<String, String>
in der ersten Zeile hat. Beachten Sie, dass Sie es nicht explizit angeben mussten, aber es wurde abgeleitet.quelle
var dict: [String: String] = [:]
In der Swift-Dokumentation wird die folgende Methode zum Initialisieren eines leeren Wörterbuchs empfohlen:
Ich war ein wenig verwirrt, als ich zum ersten Mal auf diese Frage stieß, weil verschiedene Antworten verschiedene Möglichkeiten zeigten, ein leeres Wörterbuch zu initialisieren. Es stellt sich heraus, dass es tatsächlich viele Möglichkeiten gibt, dies zu tun, obwohl einige etwas überflüssig oder übermäßig ausführlich sind, da Swift in der Lage ist, auf den Typ zu schließen.
Nachdem Sie ein leeres Wörterbuch haben, können Sie ein Schlüssel-Wert-Paar wie folgt hinzufügen:
Wenn Sie Ihr Wörterbuch erneut leeren möchten, können Sie Folgendes tun:
Die Typen sind immer noch,
<String, String>
weil es so initialisiert wurde.quelle
var emptyDictArray = [[String: String]()]
var emptyDictArray = [Dictionary<String, String>()]
Verwenden Sie dies wird funktionieren.
quelle
var emtpyAry = [String]()
. Das macht Sinn.Sie können es einfach so deklarieren:
quelle
Sie müssen dem Wörterbuch einen Typ geben
Wenn der Compiler auf den Typ schließen kann, können Sie die kürzere Syntax verwenden
quelle
Schnell:
quelle
Ich spiele auch damit. Es scheint seltsam, dass Sie einfach ein leeres Wörterbuch deklarieren und dann ein Schlüssel / Wert-Paar hinzufügen können:
Sie können jedoch ein Wörterbuch erstellen, das verschiedene Werttypen akzeptiert, indem Sie den Typ "Beliebig" wie folgt verwenden:
quelle
Sie müssen den Datentyp explizit angeben, oder der Typ kann abgeleitet werden, wenn Sie etwas in Swift deklarieren.
Swift 3
Im folgenden Beispiel wird ein Wörterbuch mit dem Schlüssel als
Int
Typ und dem Wert alsString
Typ deklariert .Methode 1: Initialisierer
Methode 2: Kurzsyntax
Methode 3: Wörterbuchliteral
quelle
Swift 4
quelle
Wenn Sie ein generisches Wörterbuch mit einem beliebigen Typ erstellen möchten
quelle
Ich benutze normalerweise
quelle
Wörterbücher in Swift deklarieren und initialisieren
Wörterbuch der Zeichenfolge
ODER
Wörterbuch von Int
ODER
Wörterbuch von AnyObject
ODER
Wörterbuch des Array of String
ODER
Array von Wörterbüchern von String
ODER
quelle
Sie können es wie folgt mit Null deklarieren:
Dann ist es schön, dass Sie bereits gesetzt haben (beachten Sie, dass ich var verwendet habe und nicht zulasse, betrachten Sie diese als veränderlich und unveränderlich). Dann können Sie es später füllen:
quelle
Sie können den folgenden Code verwenden:
quelle
var dictList = String: String für Wörterbuch in Swift var arrSectionTitle = String für Array in Swift
quelle
Es ist sehr praktisch, um sich zurechtzufinden
var dict: Dictionary = [:]
quelle
^ Dies fügt ein Wörterbuch für eine [string: double] -Eingabe hinzu
quelle