Как запустить файл scala из командной строки? - PullRequest
0 голосов
/ 21 февраля 2020

scala поддерживает scala run xxx.scala? Язык go поддерживает работу как

go my.go

, а python поддерживает

python my.py

, но, похоже,

scala xxx.scala

- это только проверка синтаксиса, нет выходной или беговой режим наблюдается. Так есть ли способ запустить файл scala напрямую?

Ответы [ 4 ]

2 голосов
/ 22 февраля 2020

Кажется, довольно легко. Но вы должны использовать println для печати чего-либо.

➜  ~ cat hello.scala
println("hello, world")
➜  ~ scala hello.scala
hello, world
➜  ~ scala -Vprint:parser hello.scala
[[syntax trees at end of                    parser]] // hello.scala
package <empty> {
  object Main extends scala.AnyRef {
    def <init>() = {
      super.<init>();
      ()
    };
    def main(args: Array[String]): scala.Unit = {
      final class $anon extends scala.AnyRef {
        def <init>() = {
          super.<init>();
          ()
        };
        println("hello, world")
      };
      new $anon()
    }
  }
}

hello, world
➜  ~ 

или есть несколько способов подачи строк в REPL, который печатает результаты для вас.

➜  ~ cat calc.scala
2 + 2
➜  ~ scala < calc.scala
Welcome to Scala 2.13.1 (OpenJDK 64-Bit Server VM, Java 11.0.3).
Type in expressions for evaluation. Or try :help.

scala> 2 + 2
res0: Int = 4

scala> :quit
➜  ~ 

См. Также -i, -I, -e и команды :load и :paste.

Как показано в другом ответе, он также будет искать основной метод в стиле Java в объект. Так вы обычно компилируете точку входа в программу.

1 голос
/ 21 февраля 2020

Я определенно рекомендую ammoninte для таких случаев. Это отдельный инструмент, но он имеет гораздо больше функций и хорошо работает.

больше на http://ammonite.io/

1 голос
/ 21 февраля 2020

scala цель бегуна может быть явно указана с помощью -howtorun

If the runner does not correctly guess how to run the target:

 -howtorun    what to run <script|object|jar|guess> (default: guess)

, например, скажем, у нас есть толстая банка, тогда мы можем запустить ее с

scala -howtorun:jar myapp.jar

По умолчанию scala бегун пытается угадать и запустить именованную цель как

  • скомпилированный класс с основным методом
  • файл jar с заголовком манифеста Main-Class
  • a Scala исходный файл для компиляции и запуска

Например, с учетом следующего Hello.scala исходного файла

// source file Hello.scala
object Hello {
  def main(args: Array[String]): Unit = {
    println("Hello World!")
  }
}

, тогда выполнение scala Hello.scala должно вывести Hello World! на третий пункт выше.

Также рассмотрим Ваши первые строки Scala.

0 голосов
/ 21 февраля 2020

Перед запуском scala исходного кода необходимо скомпилировать код scala с помощью команды scalac filename.scala. Чтобы выполнить скомпилированный файл scala, вам нужно набрать следующую команду: scala filename

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