我是Scala的新手。我喜欢在scala中添加两个数字。但是我没有得到任何输出。有人能帮忙吗?我得到的输出为“Sum is()”
下面的代码应该给予输出“Sum is 15”。
object test1 {
def main(args: Array[String]):Unit={
val obj= new A();
println("Sum is " + obj.curr())
}
}
class A{
private var value=6
def curr()={
var result= value +9
}
}
2条答案
按热度按时间ovfsdjhp1#
在Scala中,方法的返回值是最后一个表达式。
在本例中,
curr()
返回Unit
(无值)。要使其返回值,请将其更改为:
请注意,您实际上可以将其写成如下:
还要注意的是,我已经显式地添加了方法的返回类型,这是一个很好的实践,因为如果你没有返回你说要返回的类型,它将引发编译错误。
更一般地说,如果您是Scala的新手,请花点时间学习一些基本知识和编写Scala的惯用方法。
例如,
var
s应该避免,除非严格必要并且是局部范围的。bweufnob2#
方法
curr
返回一个Unit
值。如果您使用的是IDE,则可以让程序为您推断类型。在scala中,最后一行是要返回的内容。您可以像这样定义方法在本例中,最后一行是您使用名称
result
定义的var
。此表达式返回Unit
类型的值。您可以如下重构该函数正如您所看到的,您不需要将求和的结果赋值给变量,然后返回它。只要把你需要的表达式放在最后一行就足够了。