Swift (a==1&;a==2&;a==3)能等于真吗?

Swift (a==1&;a==2&;a==3)能等于真吗?,swift,Swift,我看到了,我想知道是否有可能在Swift中也这样做 这可能吗? if a==1 && a==2 && a==3 { print("amazing") } 如果是这样的话,那怎么办?这里有一个例子,它不涉及对==和&的鬼鬼祟祟的重新定义: struct Counter { var count = 0 mutating func increment() { count += 1 } var a: Int { muta

我看到了,我想知道是否有可能在Swift中也这样做

这可能吗?

if a==1 && a==2 && a==3 {
    print("amazing")
}

如果是这样的话,那怎么办?

这里有一个例子,它不涉及对
==
&
的鬼鬼祟祟的重新定义:

struct Counter {
    var count = 0
    mutating func increment() { count += 1 }

    var a: Int {
        mutating get {
            increment()
            return count
        }
    }

    mutating func sneakyFunction() {
        if a==1 && a==2 && a==3 {
            print("amazing");
        }
    }
}

var c = Counter()
c.sneakyFunction() // => amazing

您可以为
Int
类型重载
==
运算符

extension Int {
    static func == (lhs: Int, rhs: Int) -> Bool
    {
        print("== overloading")
        return rhs > 0 && rhs < 4
    }
}

let a = 1;
if a == 1 && a == 2 && a == 3 {
    print("PASS"); //always will pass
}else{
    print("FAIL"); //will never execute
}
extension Int{
静态函数==(左:Int,右:Int)->Bool
{
打印(“==重载”)
返回rhs>0&&rhs<4
}
}
设a=1;
如果a==1&&a==2&&a==3{
打印(“通过”);//总是会通过
}否则{
打印(“失败”);//将永远不会执行
}

是的,使用了几种相同的技术。很好,但是为什么要进行向下投票呢?
扩展Int{static func==(lhs:Int,rhs:Int)->Bool{return true}
;)@Alexander我怀疑人们将其视为试图重新创建JavaScript版本GOT的投票结果。我不认为它太宽泛、离题,也不认为它真正符合任何相近的原因。但是我不认为它特别有用,这也是为什么我否决了原始版本。更简单的是,只需
返回true