在scala语言中,没有参数的函数可以加括号也可以不加括号。有什么区别呢?
- 有括号的函数调用时可以加括号也可以不加括号
- 不带括号的函数调用时一定不能加括号
那么具体什么情况下写无参的函数加括号,什么时候不加括号呢?
- 无副作用的函数省略括号
- 有副作用的函数添加括号(提醒使用者需要额外小心)
好像有的人没看明白我写的什么意思,那么就上一段代码吧
object Test {
def testA = {
println("该无参函数定义的时候没加括号")
}
def testB()={
println("该无参函数定义的时候加了括号")
}
def main(args: Array[String]): Unit = {
//A使用的时候不加括号
testA
//B使用的时候可以加括号,也可以不加括号,但是存在一个规则就是
//如果函数有副作用就加括号,如果无副作用就不加括号
testB()
testB
}
}