Scala класс внеклассного метода - PullRequest
0 голосов
/ 30 сентября 2019

Если методы scala принадлежат классам, как можно создать метод вне класса?

Как в:

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

К какому классу принадлежит этот метод?

А почему вообще существует такая концепция (метод вне класса)? Мое первое впечатление состоит в том, что это вызывает много путаницы, поскольку она избыточна (у вас уже могут быть «нормальные» функции).

1 Ответ

2 голосов
/ 30 сентября 2019

На самом деле, если вы поместите этот код в файл Smth.scala и попытаетесь скомпилировать его, вы увидите, что он не

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

Полагаю, вы написали этот код в repl. В repl каждая строка компилируется в некотором объекте.

В Scala 3 возможны определения верхнего уровня

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...