gpt4 book ai didi

Scala:在 if 条件中声明 val

转载 作者:行者123 更新时间:2023-12-02 07:55:51 26 4
gpt4 key购买 nike

我有非常通用的用例。我有一个返回 Int 的方法 conditionMethod

def conditionMethod(..):Int = {..}

现在我有使用相同方法的 if 条件

if (conditionMethod(..) > 0){
conditionMethod(..) + 23 // Any action
}

问题是它调用方法conditionMethod两次。为了解决这个问题,另一种方法是

val tmp = conditionMethod(..)
if (tmp > 0){
tmp + 23 // Any action
}

我不喜欢的是我必须定义一个更大范围的变量。

我可以做类似的事情吗

if ((val tmp = conditionMethod(..)) > 0){  // tmp variable in if condition itself 
tmp + 23 // Any action
}

Scala 版本:2.11

最佳答案

您可以保持范围非常狭窄:

val result = {
val tmp = methodCall()
if (tmp>0) tmp else tmp+23
}

或者使用匹配

methodCall() match {
case x if x <= 0 => x + 23
case x => x
}

关于Scala:在 if 条件中声明 val,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54341680/

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