所以我正在制作一个待办事项列表应用程序,我希望用户在所有购物项目都被删除时收到通知。我有一个字典,其中包含 String:store 作为键和 [String]:items 作为值。有没有一种快速方法来检查所有项目的数组是否为空?
有一个简单的方法:
dicts.values.flatten().isEmpty
但这将遍历所有列表,没有任何捷径。通常这确实不是问题。但如果你想在发现一个非空的时候退出:
func isEmptyLists(dict: [String: [String]]) -> Bool {
for list in dicts.values {
if !list.isEmpty { return false }
}
return true
}
当然,您可以使其更加通用以获得捷径和便利:
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 }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)