我很困惑为什么这不会像我期望的那样运行,我试图多次更改它仍然会给出一个错误,指出它被赋予Unit
并且需要Int
。< / p>
def div(m: Int, n: Int): Int = {
var counter = 0
var p = m
while (p >= 0) {
p -= n
counter += 1
println(counter)
}
}
答案 0 :(得分:9)
在最后一次操作的scala结果中将返回值。在你的代码片段中,当你指定{{1}的返回值时,最后一个操作是while
循环,它不会返回任何东西(或者,如果你愿意,返回Unit
,它与任何东西都是一样的) }。
因此,如果你需要返回p的值,请写下:
Int
答案 1 :(得分:0)
在Scala函数中返回最后一个表达式的结果。 “div”函数的最后一个表达式是while循环,它不返回任何值,因此函数中的结果类型为Unit(Java中为“void”)