Я пытаюсь обернуть голову вокруг инициализации пустых массивов в Swift.
Для массива строк это довольно прямолинейно:
var myStringArray: String[] = []
myStringArray += "a"
myStringArray += "b"
-> ["a", "b"]
и для целых чисел
var myIntArray: Int[] = []
myIntArray += 1
myIntArray += 2
-> [1, 2]
он также работает для других типов объектов, таких как объекты NSImage:
let path = "/Library/Application Support/Apple/iChat Icons/Flags/"
let image1 = NSImage(byReferencingFile: path + "Brazil.png")
let image2 = NSImage(byReferencingFile: path + "Chile.png")
var myImageArray: NSImage[] = []
myImageArray += image1
myImageArray += image2
-> [<NSImage 0x7fe371c199f0 ...>, <NSImage 0x7fe371f39ea0 ...>]
Однако я не могу разобрать синтаксис для инициализации пустого массива словарей.
Я знаю, что вы можете иметь массив словарей, потому что инициализация с начальным значением работает:
let myDict1 = ["someKey":"someValue"]
let myDict2 = ["anotherKey":"anotherValue"]
var myDictArray = [myDict1]
myDictArray += myDict2
-> [["someKey": "someValue"], ["anotherKey": "anotherValue"]]
EDIT: произошел сбой в следующем коде (смешение myNewDictArray и myDictArray), и при исправлении он не работает, как я уже сказал.
как это делает:
let myDict1 = ["someKey":"someValue"]
let myDict2 = ["anotherKey":"anotherValue"]
var myNewDictArray: AnyObject = []
myDictArray += myDict1
myDictArray += myDict2
-> [["someKey": "someValue"], ["anotherKey": "anotherValue"]]
Забастовкa >
Это, однако, (что вы ожидаете от синтаксиса):
var myNewDictArray: Dictionary[] = []
с ошибкой Cannot convert the expression type 'Dictionary[]' to type 'Hashable'
Итак, вопрос в том, что является правильным способом инициализации пустого массива элементов Dictionary и почему этот синтаксис var myNewDictArray: Dictionary[] = []
не работает?