如果在Scala中返回错误
Posted
技术标签:
【中文标题】如果在Scala中返回错误【英文标题】:error in if return in Scala 【发布时间】:2017-06-01 17:11:25 【问题描述】:def vertify(a:Int):Int=
val result = 3
if(a>4)
val result = a
return result
我定义了上面的函数,然后使用它:
scala> vertify(5)
res4: Int = 3
为什么结果是 3 而不是 5?
【问题讨论】:
能否请您提供有关问题的更多详细信息以及您尝试解决问题的其他方法。 您应该阅读有关 Scala 值和变量以及范围的基础知识 【参考方案1】:if(a>4)
val result = a
这将创建第二个名为 result
的 val
,它仅在 if
块内限定(可见),因此 return 语句始终返回第 2 行定义的值。
无法重新分配val
,因此如果您需要更改值,则需要使用var
:
var result = 3
if (a > 4)
// no `var` or `val` prefix indicates we are
// referring to an existing variable that's already declared
result = a
但是对于像这样的简单情况,您可以避免使用该变量并使用:
def vertify(a: Int): Int = if (a > 4) a else 3
【讨论】:
【参考方案2】:您在 if 块中定义了一个新值。这样做:
def vertify(a:Int):Int=
val result = 3
if(a>4)
a
else
result
或更短:
def vertify(a: Int): Int = if (a > 4) a else 3
【讨论】:
以上是关于如果在Scala中返回错误的主要内容,如果未能解决你的问题,请参考以下文章