Roh*_*ngh 8 arrays dictionary swift swift2
所以我正在创建一个待办事项列表应用程序,我希望在删除所有购物项目时通知用户.我有一个字典,其中包含String:store作为键,[String]:items作为值.有没有快速的方法来检查所有项目的数组是否为空?
Rob*_*ier 13
有简单的方法:
dicts.values.flatten().isEmpty
Run Code Online (Sandbox Code Playgroud)
但是,这将在没有任何快捷方式的情况下遍历所有列表.通常这不是问题.但是如果你想在找到一个非空的时候拯救:
func isEmptyLists(dict: [String: [String]]) -> Bool {
for list in dicts.values {
if !list.isEmpty { return false }
}
return true
}
Run Code Online (Sandbox Code Playgroud)
当然,你可以使这更加通用,以获得短切和方便:
extension SequenceType {
func allPass(passPredicate: (Generator.Element) -> Bool) -> Bool {
for x in self {
if !passPredicate(x) { return false }
}
return true
}
}
let empty = dicts.values.allPass{ $0.isEmpty }
Run Code Online (Sandbox Code Playgroud)
你可以使用 isEmpty
var dict: Dictionary<Int, String> = [:]
var result = dict.isEmpty
Run Code Online (Sandbox Code Playgroud)
result 将会 true