-7
def vertify(a:Int):Int= {
val result = 3
if(a>4) {
val result = a
}
return result
}
我所定義的功能的上方,然後使用它:錯誤如果返回Scala中
scala> vertify(5)
res4: Int = 3
爲什麼是結果圖3和5不?
def vertify(a:Int):Int= {
val result = 3
if(a>4) {
val result = a
}
return result
}
我所定義的功能的上方,然後使用它:錯誤如果返回Scala中
scala> vertify(5)
res4: Int = 3
爲什麼是結果圖3和5不?
if(a>4) {
val result = a
}
這是創建第二val
名爲result
即只有if
塊內部作用域(可見),因此,返回語句總是返回第2行
定義的值A 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
你的,如果塊中定義一個新的價值。像這樣做:
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
請您提供更多的細節問題,你試圖解決問題的其他方法。 – Pavel
你應該閱讀有關斯卡拉值和變量,和範圍的基礎知識 – pedrorijo91