Swift: массив словарей имеет количество 1 после инициализации, но должно иметь 0
var persons = [Dictionary<String, String>()]
println(persons.count)
печать 1
, Я вижу, что есть пустой словарь внутри массива, когда он инициализируется, но есть ли способ избежать этого и иметь 0 элементов вместо 1? Позже мне нужно уметь делать:
persons.append(["firstName": "Foo", "lastName": "Bar"])
Есть идеи?
3 ответа
Решение
Используя это:
[Dictionary<String, String>()]
вы создаете массив с одним элементом Dictionary<String, String>()
Правильный способ - переместить скобки после квадратных скобок:
[Dictionary<String, String>]()
Это объявляет массив типа Dictionary<String, String>
и создать его экземпляр.
Эквивалентный способ его создания:
Array<Dictionary<String, String>>()
Просто поместите скобки снаружи:
var persons = [Dictionary<String, String>]()
Не должно ли это быть
var persons = Dictionary<String, String>()
println(persons.count)
или же
var persons = [String : String]()
println(persons.count)
но не оба синтаксиса одновременно?