Estoy empezando a aprender swift
siguiendo el iBook- The Swift Programming Language
on Swift proporcionado por Apple. El libro dice que para crear un diccionario vacío, uno debe usar lo [:]
mismo que al declarar una matriz como []
:
Declaré una matriz vacía de la siguiente manera:
let emptyArr = [] // or String[]()
Pero al declarar un diccionario vacío, me sale un error de sintaxis:
let emptyDict = [:]
¿Cómo declaro un diccionario vacío?
ios
swift
dictionary
z22
fuente
fuente
array :() dictionary :{}
declaraciones de impresiónlet arr = [] let dict = [:] println("array :\(arr)") println("dictionary :\(dict)")
Respuestas:
Nota : si va a cambiar el contenido del diccionario con el tiempo, declare como una
var
(variable). Usted puede declarar un diccionario vacío comolet
(constante), pero no tiene sentido si usted tiene la intención de cambiar su contenido con el tiempo, ya constante no se puede cambiar después de que se haya inicializado.Vieja respuesta :
Crear un diccionario de tipo vacío
<String, String>
se vería de la siguiente manera:fuente
var
como le sugerí: developer.apple.com/library/prerelease/ios/documentation/Swift/…__NSDictionaryI
. Intente agregar un elemento a esoemptyDict
y fallará en el momento de la compilación.No se puede usar a
[:]
menos que la información de tipo esté disponible.Debe proporcionarlo explícitamente en este caso:
var
significa que es mutable, por lo que puede agregarle entradas. Por el contrario, si lo convierte en unlet
no puede modificarlo más (let
significa constante).Puede usar la
[:]
notación abreviada si se puede inferir la información de tipo, por ejemploEn el último ejemplo, se sabe que el diccionario tiene un tipo
Dictionary<String, String>
en la primera línea. Tenga en cuenta que no tuvo que especificarlo explícitamente, pero se infirió.fuente
var dict: [String: String] = [:]
La documentación de Swift recomienda la siguiente forma de inicializar un diccionario vacío:
Estaba un poco confundido cuando me encontré con esta pregunta por primera vez porque diferentes respuestas mostraban diferentes formas de inicializar un Diccionario vacío. Resulta que en realidad hay muchas maneras de hacerlo, aunque algunas son un poco redundantes o excesivamente detalladas dada la capacidad de Swift para inferir el tipo.
Después de tener un diccionario vacío, puede agregar un par clave-valor como este:
Si desea vaciar su diccionario nuevamente, puede hacer lo siguiente:
Los tipos siguen siendo así
<String, String>
porque así se inicializó.fuente
var emptyDictArray = [[String: String]()]
var emptyDictArray = [Dictionary<String, String>()]
Use esto funcionará.
fuente
var emtpyAry = [String]()
. Eso tiene sentido.Simplemente puede declararlo así:
fuente
Tienes que darle un tipo al diccionario
Si el compilador puede inferir el tipo, puede usar la sintaxis más corta
fuente
Rápido:
fuente
Estoy jugando con esto también. Parece extraño que pueda declarar un diccionario vacío y luego agregarle un par clave / valor de la siguiente manera:
Pero puede crear un Diccionario que acepte diferentes tipos de valores utilizando el tipo "Cualquiera" de esta manera:
fuente
Debe indicar explícitamente el tipo de datos o el tipo puede inferirse cuando declara algo en Swift.
Swift 3
El siguiente ejemplo declara un diccionario con clave como
Int
tipo y el valor comoString
tipo.Método 1: inicializador
Método 2: sintaxis abreviada
Método 3: Diccionario literal
fuente
Swift 4
fuente
Si quieres crear un diccionario genérico con cualquier tipo
fuente
Usualmente estoy usando
fuente
Declarando e inicializando diccionarios en Swift
Diccionario de cuerdas
O
Diccionario de Int
O
Diccionario de AnyObject
O
Diccionario de matriz de cuerdas
O
Matriz de diccionarios de cuerdas
O
fuente
Puede declararlo como nulo con lo siguiente:
Entonces, lo bueno es que ya ha escrito (note que usé var y no lo dejo, piense en esto como mutable e inmutable). Luego puedes llenarlo más tarde:
fuente
Puedes usar el siguiente código:
fuente
var dictList = String: String para diccionario en swift var arrSectionTitle = String para array en swift
fuente
Es muy útil para encontrar el camino.
dict var: Diccionario = [:]
fuente
^ esto agrega un diccionario para una entrada [string: double]
fuente