У меня есть словарь с типом [MyKeys : Any]
. Где MyKeys
- это Enum
с String
в качестве rawValue
. Мне нужно преобразовать этот тип ключа в String
. Или, скорее, создайте новый словарь из этого текущего словаря с типом [String : Any]
.
Пока у меня есть этот код, который я играл на детской площадке. Это работает, но мне нужен более эффективный (если есть) и более короткий.
import UIKit
enum MyKey: String {
case aaa = "lalal"
}
func lolo(_ keyDic: [MyKey : Any]) {
var finalDic = [String : Any]()
for keyDic in keyDic.enumerated() {
let key = keyDic.element.key
let val = keyDic.element.value
finalDic[key.rawValue] = val
}
finally(finalDic)
}
func finally(_ dic: [String : Any]) {
print(dic)
}
lolo([MyKey.aaa : 123])
UPDATE:
Я нашел лучший способ, пока ждал ответов:
var finalDic = [String : Any]()
keyDic.enumerated().map{( finalDic[$0.element.key.rawValue] = $0.element.value )}
finally(finalDic)