【发布时间】:2018-03-28 00:14:14
【问题描述】:
我正在尝试在数组上使用reduce函数:
var fields = ["gender", "name", "nickname"]
var stats = fields.reduce([String:String]()) { (res, field) -> [String:String] in
res[field] = json[field] ?? ""
return res
}
它只是通过 fields 数组并将值从 json 对象分配给 res。
对我来说似乎很简单,但编译器一直在说:
错误:无法通过下标赋值:'res' 是一个 'let' 常量
上线:
res[field] = json[field] ?? ""
这对我来说没有任何意义,因为我从未将 res 或 stats 指定为 let。
【问题讨论】:
-
当然你把 res 设为 let,它在哪里声明为 var?
-
@Lu_ 我在看这个例子stackoverflow.com/a/39791331/8643650
-
没错,您在哪里将 ser res 作为 var?它是在示例中完成的