在我的代码中,我检查系统函数是否等于零,如果是我返回另一个值,如果不是,我返回测试值。
(class.verylongfunc(arg, arg) == 0) ? othervar : class.verylongfunc(arg, arg)
这里有更好更简洁的方法吗?我不想调用该函数两次... 我知道我能做到
let tmp = class.verylongfunc(arg, arg)
(tmp == 0) ? othervar : tmp
但是需要两行...
最佳答案
最干净的方法可能吗?
let value = someLongFunc()
if value == 0 {
return otherValue
} else {
return value
}
我向您保证,阅读它的每个人都会毫不犹豫地理解它。您可以制作一些运算符或辅助函数,但真正的“干净方式”是什么?更少的代码行?我强烈不同意这一点。在“干净的代码”中,可读性比破解一行代码更重要,只有糟糕的人才会滥用三元运算符。
关于Swift 三元,返回测试值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36047192/