我有以下词典:
["oct": nil,
"jan": Optional(3666.0),
"nov": nil,
"apr": nil,
"sep": nil,
"feb": nil,
"jul": nil,
"mar": nil,
"dec": nil,
"may": nil,
"jun": nil,
"aug": nil]
我想只在任何键的任何值都不为零时才启用按钮。没有传统的循环,是否有任何功能性的“魔法”?
答案 0 :(得分:3)
在字典值上使用contains(where:)
:
// Enable button if at least one value is not nil:
button.isEnabled = dict.values.contains(where: { $0 != nil })
或者
// Enable button if no value is nil:
button.isEnabled = !dict.values.contains(where: { $0 == nil })
答案 1 :(得分:1)
您可以使用filter
检查字典中的值是否为零。
button.isEnabled = dict.filter { $1 == nil }.isEmpty
答案 2 :(得分:1)
您已经获得了类似的解决方案,但是现在就去:
dict.filter({$0.value == nil}).count != 0
答案 3 :(得分:0)
我建议遵守标准字典定义,nil
值表示无密钥,并将字典声明为非可选字段([String:Double]
)。
在这种情况下,如果所有12个键都存在,则将启用该按钮。这比filter
或contains
button.isEnabled = dict.count == 12