我想知道是否有更优雅的方式来写这个:
struct S {
var state: [String: Any]
public var amounts: [Amount] {
var result: [Amount] = []
(self.state["amounts"] as? [Any]?)??.forEach({ a in
result.append(Amount(a))
})
return result
}
}
struct Amount {
init(_ any: Any?) {}
}
我试过使用
map
作为数组,但找不到这样做的方法。 最佳答案
您还可以使用guard let
和提前返回,这将使它看起来更好。
我就是这样做的,
struct S {
var state: [String: Any]
public var amounts: [Amount] {
guard let amounts = state["amounts"] as? [Any] else {
return []
}
return amounts.map(Amount.init)
}
}
关于ios - Swift:写这个数组映射的更优雅的方法吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56181269/