Я намагаюся обернути голову ініціалізацією порожніх масивів у 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"]]
Однак це (яке, як ви очікуєте, синтаксис) не вдається:
var myNewDictArray: Dictionary[] = []
з помилкою Cannot convert the expression's type 'Dictionary[]' to type 'Hashable'
Отже, питання полягає в тому, який правильний спосіб ініціалізувати порожній масив елементів словника, і чому цей синтаксис не var myNewDictArray: Dictionary[] = []
працює?