Estou começando a aprender swift
seguindo o iBook- The Swift Programming Language
on Swift fornecido pela Apple. O livro diz que, para criar um dicionário vazio, deve-se usar o [:]
mesmo que ao declarar o array como[]
:
Eu declarei uma matriz vazia da seguinte maneira:
let emptyArr = [] // or String[]()
Mas ao declarar um dicionário vazio, recebo um erro de sintaxe:
let emptyDict = [:]
Como declaro um dicionário vazio?
ios
swift
dictionary
z22
fonte
fonte
array :() dictionary :{}
instruções de impressãolet arr = [] let dict = [:] println("array :\(arr)") println("dictionary :\(dict)")
Respostas:
Nota : se você quiser alterar o conteúdo do dicionário ao longo do tempo, declare-o como uma
var
(variável). Você pode declarar um dicionário vazio comolet
(constante), mas não faz sentido se você tiver a intenção de alterar seu conteúdo ao longo do tempo, pois a constante não poderá ser alterada após a inicialização.Resposta antiga :
A criação de um dicionário do tipo vazio
<String, String>
teria a seguinte aparência:fonte
var
como sugeri-lhe: developer.apple.com/library/prerelease/ios/documentation/Swift/...__NSDictionaryI
. Tente adicionar um elemento aemptyDict
ele e ele falhará no momento da compilação.Você não pode usar
[:]
menos que as informações de tipo estejam disponíveis.Você precisa fornecê-lo explicitamente neste caso:
var
significa que é mutável, para que você possa adicionar entradas a ele. Por outro lado, se você o fizer,let
não poderá mais modificá-lo (let
significa constante).Você pode usar a
[:]
notação abreviada se as informações de tipo puderem ser deduzidas, por exemploNo último exemplo, sabe-se que o dicionário possui um tipo
Dictionary<String, String>
pela primeira linha. Observe que você não precisou especificá-lo explicitamente, mas foi inferido.fonte
var dict: [String: String] = [:]
A documentação do Swift recomenda a seguinte maneira de inicializar um dicionário vazio:
Fiquei um pouco confuso quando me deparei com essa pergunta, porque respostas diferentes mostraram maneiras diferentes de inicializar um dicionário vazio. Acontece que existem muitas maneiras de fazer isso, embora algumas sejam um pouco redundantes ou excessivamente detalhadas, dada a capacidade de Swift de inferir o tipo.
Depois de ter um dicionário vazio, você pode adicionar um par de valores-chave como este:
Se você quiser esvaziar seu dicionário novamente, faça o seguinte:
Os tipos ainda são
<String, String>
porque foi assim que foi inicializado.fonte
var emptyDictArray = [[String: String]()]
var emptyDictArray = [Dictionary<String, String>()]
Use isso vai funcionar.
fonte
var emtpyAry = [String]()
. Isso faz sentido.Você pode simplesmente declarar assim:
fonte
Você precisa atribuir um tipo ao dicionário
Se o compilador puder inferir o tipo, você poderá usar a sintaxe mais curta
fonte
Rápido:
fonte
Também estou brincando com isso. Parece estranho que você possa simplesmente declarar um dicionário vazio e adicionar um par de chave / valor a ele da seguinte maneira:
Mas você pode criar um Dicionário que aceite diferentes tipos de valor usando o tipo "Qualquer", da seguinte forma:
fonte
Você precisa informar explicitamente o tipo de dados ou o tipo pode ser inferido quando você declara algo no Swift.
Swift 3
A amostra abaixo declara um dicionário com chave como um
Int
tipo e o valor como umString
tipo.Método 1: Inicializador
Método 2: sintaxe abreviada
Método 3: dicionário literal
fonte
Swift 4
fonte
Se você deseja criar um dicionário genérico com qualquer tipo
fonte
Eu normalmente estou usando
fonte
Declarando e inicializando dicionários no Swift
Dicionário de Cordas
OU
Dicionário Int
OU
Dicionário de AnyObject
OU
Dicionário de Array of String
OU
Matriz de dicionários de string
OU
fonte
Você pode declarar como nulo com o seguinte:
Então o mais legal é que você já escreveu (observe que usei var e não deixei, pense neles como mutável e imutável). Então você pode preenchê-lo mais tarde:
fonte
Você pode usar o seguinte código:
fonte
var dictList = String: String para dicionário em swift var arrSectionTitle = String para array em swift
fonte
É muito útil para encontrar o seu caminho
dicionário de var: Dictionary = [:]
fonte
^ isso adiciona um dicionário para uma entrada [string: double]
fonte