首页 > 解决方案 > 如何在 Swift 5 中检查 3 个变量是否相等?

问题描述

我目前正在开发一个需要相互比较三个变量的应用程序。

比较规则:只有在以下情况下,结果才应该为真: 所有三个变量都相等所有三个变量都不同

我的第一个想法是这样的,但我希望有一个更优雅的解决方案:

if (value1 == value2 && value2 == value3) || (value1 != value2 && value2 != value3 && value3 != value1) {
    // True
} else {
    // False
}

如果你们中的某个人能想到一个更优雅的解决方案并与我分享,我会非常高兴。提前感谢您的帮助!

标签: iosswiftif-statementconditional-statementscomparison

解决方案


如果您的值也是Hashable,您可以使用Set. 鉴于 aSet会丢弃重复值,您可以将检查简化为如下所示:

let valuesArray = [value1, value2, value3]
let valuesSet = Set(valuesArray)

if valuesSet.count == 1 || valuesSet.count == valuesArray.count {
    // True
} else {
    // False
}

推荐阅读