Scala代码 - 奇怪的行为

时间:2016-09-19 11:56:06

标签: scala

我正在学习scala方法,并且我创建了两个代码示例,这些示例在本质上有些相似,但在调用它们时感到困惑。

方法#1

def someTestMethod = {
    println("Inside a test method")
}

这会转换为Unit类型,因为它不会返回任何内容。

方法#2

def anotherTestMethod() = {
    println("Inside a test method")
}

这也转移到Unit,但添加了大括号()

这两种方法有什么区别,请注意,如果我调用someTestMethod()之类的第一个方法,那么scala shell /编译器会说

错误:单位不接受参数,但如果我在没有大括号的情况下调用someTestMethod,则效果很好。

此外,第二种方法似乎是万无一失的,因为它可以被称为anotherTestMethodanotherTestMethod(),为什么会这样?

1 个答案:

答案 0 :(得分:-2)

如果您不想将任何参数传递给方法,请使用第一个参数。

如果你想传递一些传递参数,可以使用带括号的第二个参数并传递一些参数并在方法中使用它。

例如:

def someTestMethod1(count : Int) = {
    println("Inside a test method"+count)
  }

  someTestMethod1(10)