如何在scala中打印2个数字的和?

gc0ot86w  于 7个月前  发布在  Scala
关注(0)|答案(2)|浏览(104)

我是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
  }
}
ovfsdjhp

ovfsdjhp1#

在Scala中,方法的返回值是最后一个表达式。
在本例中,curr()返回Unit(无值)。
要使其返回值,请将其更改为:

def curr(): Int = {
    var result= value +9
    result
  }

请注意,您实际上可以将其写成如下:

def curr(): Int = value + 9

还要注意的是,我已经显式地添加了方法的返回类型,这是一个很好的实践,因为如果你没有返回你说要返回的类型,它将引发编译错误。
更一般地说,如果您是Scala的新手,请花点时间学习一些基本知识和编写Scala的惯用方法。
例如,var s应该避免,除非严格必要并且是局部范围的。

bweufnob

bweufnob2#

方法curr返回一个Unit值。如果您使用的是IDE,则可以让程序为您推断类型。在scala中,最后一行是要返回的内容。您可以像这样定义方法

def curr()={
  var result= value +9
}

在本例中,最后一行是您使用名称result定义的var。此表达式返回Unit类型的值。您可以如下重构该函数

def curr: Int = value + 9

正如您所看到的,您不需要将求和的结果赋值给变量,然后返回它。只要把你需要的表达式放在最后一行就足够了。

相关问题