В чем разница между классами scala, скриптами и рабочими листами в Intellij-idea?
Я использую Intellij-идею для программирования на Scala (с плагином sbt).
Я хочу знать, в чем разница между классами Scala, скриптами Scala и рабочими листами Scala. Когда мы используем каждый из них?
Это будет очень хорошо, если вы сможете объяснить это простым примером.
Спасибо
2 ответа
У вас есть разные способы запуска Scala-кода:
Сначала создайте Программу с вашими классами, это как в Java, я использую объект, потому что он работает хорошо без инстанцирования, как статический, просто скомпилируйте с SBT и запустите его, вы также можете использовать Scala Interpreter REPL
Мы можем использовать этот объект в REPL
scala> object Hello {
| def main(args:Array[String]) {
| println("Hello, Scala !!")
| }
| }
defined object Hello
scala> Hello.main(Array("onlyforwork"))
Hello, Scala !!
компилировать и запускать его с помощью активатора /SBT
> compile
[info] Compiling 1 Scala source to /home/anquegi/Dev/StackOverFlow/scalaStack/target/scala-2.11/classes...
[success] Total time: 2 s, completed 13/04/2015 11:29:42
> run
[warn] Multiple main classes detected. Run 'show discoveredMainClasses' to see the list
Multiple main classes detected, select one to run:
[1] org.example.Hello
[2] org.example.ScheduledTaskScala
[3] question1.Ques
[4] scriptworksheet.Hello
Enter number: 4
[info] Running scriptworksheet.Hello
Hello, Scala !!
[success] Total time: 19 s, completed 13/04/2015 11:30:04
Во-вторых, если мы добавим код scala в виде скрипта или файла Hello.scala, вы можете сохранить свой код scala в файле с расширением.scala (в основном с любым расширением файла, но с предпочтительным расширением.scala) и запустить его, предоставив файл. имя с расширением в качестве параметра для интерпретатора scala
/**
* Created by anquegi on 13/04/15.
*/
println("Hello, Scala !!")
если мы вызываем интерпретатор scala, этот файл выполняется, вам не нужно создавать экземпляры объектов или предложений, просто выполняя как сценарий оболочки, вы также можете выполнять напрямую из Intellij, но я использую консоль с установленной в системе scala
[anquegi@localhost scalaStack]$ scala src/main/scala/scriptworksheet/HelloScript.scala
Hello, Scala !!
И, наконец, рабочий лист является наиболее мощным, я рекомендую его для увеличения вашей продуктивности на работе, потому что это легко проверить вещи, как REPL, и он испускает выражения scala и показывает вам результат
Ниже приведена выдержка из официальной вики-репозитории githu b о рабочем листе scala
Рабочий лист - это файл Scala, который оценивается при сохранении, а результат каждого выражения отображается в столбце справа от вашей программы. Рабочие листы похожи на сеанс REPL на стероидах и имеют поддержку редактора первого класса: завершение, гиперссылка, интерактивные ошибки при вводе, автоформатирование и т. Д.
// We can define objects or classes and the worksheet
//will print the sesult of every expression
object Hello {
def main(args:Array[String]) {
println("Hello, Scala !!")
}
}
println("Hello Scala")
val a = 4 + 5
результат
defined module Hello
Hello Scala
res0: Unit = ()
a: Int = 9
затем захват, показывающий работу с рабочим листом classe и консолью скриптов в Intellij
Scala Worksheet
Он такой же, как Scala Interpreter (REPL), но работает внутри IntelliJ. Где вы можете легко и быстро оценить некоторые выражения. Проверьте страницу слияния IntelliJ для получения дополнительной информации.
Scala Script
Если вы не хотите писать скрипт на Bash, вы можете сделать это с помощью Scala. Это просто последовательность утверждений Scala.
Пример:
import java.nio.file.{Paths, Files}
val ScalaSource = "*.scala"
val Path = "path/to/necessary/folder"
val stream = Files.newDirectoryStream(Paths.get(Path), ScalaSource)
val paths = stream.iterator
while (paths.hasNext) {
println(paths.next.getFileName)
}
Запуск это:
$ scala scala_script_name.scala
Для начала возьмите это руководство.
Классы и Объект
Короткий ответ для классов Scala - это похоже на объекты POJO и Scala, это класс Java Singleton.