Swift (a==1&;a==2&;a==3)能等于真吗?
我看到了,我想知道是否有可能在Swift中也这样做 这可能吗?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
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
!