plugin - ¿Cuál es la diferencia entre las clases de scala, los scripts y las hojas de trabajo en Intellij-idea?
scala intellij imports (2)
Hoja de trabajo Scala
Es igual que el intérprete de Scala (REPL) pero se ejecuta dentro de IntelliJ. Donde puedes evaluar algunas expresiones fácil y rápidamente. Consulte la página de confluencia de IntelliJ para obtener más información.
Scala Script
Si no quieres escribir un script en Bash, puedes hacerlo con Scala. Es solo una secuencia de declaraciones de Scala .
Ejemplo:
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)
}
Ejecutandolo
$ scala scala_script_name.scala
Para empezar a recoger esta guide .
Clases y objetos
La respuesta corta para las clases de Scala es similar a POJO y los objetos de Scala es una clase de Singleton de Java.
Estoy usando Intellij-idea para la programación de scala (con el complemento sbt).
Quiero saber cuál es la diferencia entre las clases de scala, los scripts de scala y las hojas de trabajo de scala. ¿Cuándo usamos cada uno de ellos?
Esto será muy bueno si puedes explicarlo con un simple ejemplo.
Gracias
Tienes diferentes formas de ejecutar el código de Scala:
Primero cree un programa con sus clases, esto es como en java, yo uso el objeto porque funciona bien sin instantáneos, como estático, solo compile con el SBT y ejecútelo también puede usar el intérprete de Scala REPL
Podemos usar este objeto en el REPL.
scala> object Hello {
| def main(args:Array[String]) {
| println("Hello, Scala !!")
| }
| }
defined object Hello
scala> Hello.main(Array("onlyforwork"))
Hello, Scala !!
compilarlo y ejecutarlo usando activador / SBT
> compile
[info] Compiling 1 Scala source to /home/anquegi/Dev//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
La segunda es que si agregamos el código de Scala como una secuencia de comandos o un archivo Hello.scala, puede guardar el código de Scala en el archivo con la extensión .scala (básicamente con cualquier extensión de archivo pero la extensión .scala preferida) y, para ejecutar, proporcionar el archivo. Nombre con extensión como parámetro al intérprete de scala.
/**
* Created by anquegi on 13/04/15.
*/
println("Hello, Scala !!")
Si llamamos al intérprete de Scala, este archivo se ejecuta, no necesita instanciar objetos o clases, solo ejecutar como un script de shell, también puede ejecutar directamente desde Intellij, pero uso la consola con Scala instalada en el sistema.
[anquegi@localhost scalaStack]$ scala src/main/scala/scriptworksheet/HelloScript.scala
Hello, Scala !!
Y, finalmente, la hoja de trabajo es la más poderosa, lo recomiendo para aumentar su productividad en el trabajo, ya que es fácil de probar, es como el REPL, ya que elimina las experiencias de Scala y le muestra el resultado.
A continuación se muestra un extracto de la wiki de repositorio de github sobre la hoja de trabajo de Scala
Una hoja de cálculo es un archivo Scala que se evalúa al guardar, y el resultado de cada expresión se muestra en una columna a la derecha de su programa. Las hojas de trabajo son como una sesión REPL con esteroides, y cuentan con soporte de editor de primera clase: finalización, hipervinculación, errores interactivos a medida que se escribe, formato automático, etc.
// 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
el resultado
defined module Hello
Hello Scala
res0: Unit = ()
a: Int = 9
luego una captura que muestra cómo trabajar con classe la hoja de trabajo y la consola para scripts en el Intellij