mum*_*yan -8 if-statement scala return
def vertify(a:Int):Int= {
val result = 3
if(a>4) {
val result = a
}
return result
}
Run Code Online (Sandbox Code Playgroud)
我定义了上面的函数,然后使用它:
scala> vertify(5)
res4: Int = 3
Run Code Online (Sandbox Code Playgroud)
为什么结果3而不是5?
if(a>4) {
val result = a
}
Run Code Online (Sandbox Code Playgroud)
这是创建第二个val
名称result
,它只在if
块内部作用域(可见),因此return语句总是返回第2行定义的值.
A val
无法重新分配,因此var
如果需要更改值,则需要使用a :
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
}
Run Code Online (Sandbox Code Playgroud)
但对于像这样的简单情况,你可以避免变量并使用:
def vertify(a: Int): Int = if (a > 4) a else 3
Run Code Online (Sandbox Code Playgroud)