Scala类超出类的方法

时间:2019-09-30 09:34:48

标签: scala function methods read-eval-print-loop scala-repl

如果scala方法属于类,那么为什么不能在类之外创建方法?

如:

def hello(a:String) {println(s"Hello $a")}

此方法属于哪个类?

为什么根本没有这样的概念(课堂以外的方法)?我的第一印象是它引起了很多混乱,因为它是多余的(您已经可以拥有“正常”功能)。

1 个答案:

答案 0 :(得分:2)

实际上,如果您将此代码放在文件Smth.scala中并尝试对其进行编译,则会发现它没有

Error:(1, 1) expected class or object definition
def hello(a:String) {println(s"Hello $a")}

我想您是用repl编写此代码的。相对而言,每一行都在某个对象中编译。

在Scala中3个顶级定义将成为可能

https://dotty.epfl.ch/docs/reference/dropped-features/package-objects.html