gpt4 book ai didi

swift - if语句占用太多代码,有没有办法简化这段代码?

转载 作者:行者123 更新时间:2023-11-28 16:05:57 25 4
gpt4 key购买 nike

我已经用 x、y 和 z 替换了我的代码。目前我的代码是这样运行的,但我有很多行要检查 x。有没有办法不用这个

if x != y && x != z

改用这样的东西

if x != y,z 

对不起大家我应该更好地解释它。这是一段使用 contains 的更新代码,非常有帮助,谢谢!

if contactCreation.checkAllowed(newContact.contactDetails){
if{contactCreation.blockedCreation.contains(newContact.contactDetails){
watchList.addAttempt(newContact.contactDetails)
}
}else{
newAccount.showReasons()
}

我想我的问题更多是有没有办法检查 x 是否为 y 以及 x 是否为 z 而不是 x 是否为 y + z。基本上我想打电话

if x != y && x != z && x != d && != e

不必每次都在一个 if 语句中获取 x。所以像这样

if x != y && != z && != d && != e

感谢大家的帮助!

最佳答案

一个稍微短一点的版本是给模式匹配运算符添加一个重载(~=):

func ~=<T: Equatable>(pattern: [T], value: T) -> Bool {
return pattern.contains(value)
}

if !([y,z] ~= x) {

}

如果那个表达式看起来有点笨拙并且你写了很多,你可以定义自己的运算符:

infix operator !!= : ComparisonPrecedence

func !!=<T: Equatable>(lhs: T, rhs: [T]) -> Bool {
return !rhs.contains(lhs)
}

if x !!= [y,z] {

}

关于swift - if语句占用太多代码,有没有办法简化这段代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40275322/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com