Je commence à apprendre swift
en suivant l'iBook- The Swift Programming Language
on Swift fourni par Apple. Le livre dit que pour créer un dictionnaire vide, il faut utiliser la [:]
même chose que pour déclarer un tableau comme []
:
J'ai déclaré un tableau vide comme suit:
let emptyArr = [] // or String[]()
Mais en déclarant un dictionnaire vide, j'obtiens une erreur de syntaxe:
let emptyDict = [:]
Comment déclarer un dictionnaire vide?
ios
swift
dictionary
z22
la source
la source
array :() dictionary :{}
les instructions d'impression de la consolelet arr = [] let dict = [:] println("array :\(arr)") println("dictionary :\(dict)")
Réponses:
Remarque : si vous souhaitez modifier le contenu du dictionnaire au fil du temps, déclarez-le comme une
var
(variable). Vous pouvez déclarer un dictionnaire vide comme unelet
(constante), mais cela ne sert à rien si vous avez l'intention de modifier son contenu au fil du temps, car la constante ne peut pas être modifiée après son initialisation.Ancienne réponse :
Créer un dictionnaire vide de type
<String, String>
ressemblerait à ceci:la source
var
comme je vous l'ai suggéré: developer.apple.com/library/prerelease/ios/documentation/Swift/…__NSDictionaryI
. Essayez d'ajouter un élément à celaemptyDict
et cela échouera au moment de la compilation.Vous ne pouvez pas utiliser tant
[:]
que les informations de type ne sont pas disponibles.Vous devez le fournir explicitement dans ce cas:
var
signifie qu'il est modifiable, vous pouvez donc y ajouter des entrées. Inversement, si vous en faites un,let
vous ne pouvez plus le modifier (let
signifie constant).Vous pouvez utiliser la
[:]
notation abrégée si les informations de type peuvent être déduites, par exempleDans le dernier exemple, le dictionnaire est connu pour avoir un type
Dictionary<String, String>
à la première ligne. Notez que vous n'avez pas eu à le spécifier explicitement, mais il a été déduit.la source
var dict: [String: String] = [:]
La documentation Swift recommande la méthode suivante pour initialiser un dictionnaire vide:
J'étais un peu confus lorsque je suis tombé sur cette question pour la première fois, car différentes réponses montraient différentes façons d'initialiser un dictionnaire vide. Il s'avère qu'il existe en fait de nombreuses façons de le faire, bien que certaines soient un peu redondantes ou trop verbeuses étant donné la capacité de Swift à déduire le type.
Une fois que vous avez un dictionnaire vide, vous pouvez ajouter une paire clé-valeur comme celle-ci:
Si vous souhaitez à nouveau vider votre dictionnaire, vous pouvez effectuer les opérations suivantes:
Les types sont toujours
<String, String>
parce que c'est ainsi qu'il a été initialisé.la source
var emptyDictArray = [[String: String]()]
var emptyDictArray = [Dictionary<String, String>()]
Utilisez cela fonctionnera.
la source
var emtpyAry = [String]()
. C'est logique.Vous pouvez simplement le déclarer comme ceci:
la source
Vous devez donner un type au dictionnaire
Si le compilateur peut déduire le type, vous pouvez utiliser la syntaxe plus courte
la source
Rapide:
la source
Je joue avec ça aussi. Il semble étrange que vous puissiez simplement déclarer un dictionnaire vide, puis y ajouter une paire clé / valeur comme ceci:
Mais vous pouvez créer un dictionnaire qui accepte différents types de valeur en utilisant le type "Tout" comme ceci:
la source
Vous devez indiquer explicitement le type de données ou le type peut être déduit lorsque vous déclarez quoi que ce soit dans Swift.
Swift 3
L'exemple ci-dessous déclare un dictionnaire avec la clé comme
Int
type et la valeur commeString
type.Méthode 1: initialiseur
Méthode 2: syntaxe abrégée
Méthode 3: Dictionnaire littéral
la source
Swift 4
la source
Si vous souhaitez créer un dictionnaire générique avec n'importe quel type
la source
J'utilise habituellement
la source
Déclaration et initialisation de dictionnaires dans Swift
Dictionnaire de la chaîne
OU
Dictionnaire d'Int
OU
Dictionnaire AnyObject
OU
Dictionnaire de Array of String
OU
Tableau de dictionnaires de chaîne
OU
la source
Vous pouvez le déclarer nul avec les éléments suivants:
Alors la bonne chose est que vous avez déjà composé (notez que j'ai utilisé var et not let, pensez à ceux-ci comme mutables et immuables). Ensuite, vous pouvez le remplir plus tard:
la source
Vous pouvez utiliser le code suivant:
la source
var dictList = String: Chaîne pour le dictionnaire en swift var arrSectionTitle = Chaîne pour le tableau en swift
la source
C'est très pratique pour trouver votre chemin
var dict: Dictionnaire = [:]
la source
^ ceci ajoute un dictionnaire pour une entrée [string: double]
la source