我试图尽可能避免可变变量,但有时感觉太难了,我不想以极其复杂的代码结束
尽管如此,我还是找到了这种方法,但这确实感觉像是在作弊
我正在解析一个查询,我发现找到一个字段!值,我想将它翻译成字段:<>值,然后继续处理,所以我提出了这段代码以避免可变,或者至少有他们被禁锢...
val (operator, negated) = {
var operator = ConditionOperator.toConditionOperator(parsedOperator)
var negated = parsedNegated == "!"
// field!value => field notEqual value
if (negated && operator == ConditionOperator.Unknown) {
negated = false
operator = ConditionOperator.NotEqual
}
(operator, negated)
}
这是正确的方法吗???还是有更惯用(和清晰!)的方式来实现这种事情?