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)

но не оба синтаксиса одновременно?

https://developer.apple.com/library/mac/documentation/General/Reference/SwiftStandardLibraryReference/Dictionary.html

Другие вопросы по тегам