我有这样的小结构:
let arguments = [ "a" : [ "b" : [ "c" : "d", "e" : "f", "g" : "h" ] ] ]
在Swift 2中,我可以将它们作为NSDictionary参数传递给其他函数。现在它的全部错误。 Swift希望我精确地指定Dictionary类型,但由于结构变化不可能。怎么解决这个问题?
答案 0 :(得分:3)
当然,您仍然可以将字典传递给Swift 3中的函数。
在这种情况下,正如 sbarow 所建议的那样,只需在函数的参数中声明字典类型
let arguments = [ "a" : [ "b" : [ "c" : "d", "e" : "f", "g" : "h" ] ] ]
func foo(dict: [String: [String: [String: String]]]) {
print(dict)
}
foo(dict:arguments)
在这种情况下,如果你只知道你的字典有一个String
作为键,那么你可以声明它如下所示
let arguments = [ "a" : [ "b" : [ "c" : "d", "e" : "f", "g" : "h" ] ] ]
func foo(dict: [String: Any]) {
print(dict)
}
foo(dict:arguments)