我是新来的Scala。 我只能迄今为止编写基本代码,但我想开始使用它更具体,而不仅仅是学习理论。
可以说,我在HelloWorld.java下面的Java代码:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World");
}
}
将相当于Scala代码是什么?
我是新来的Scala。 我只能迄今为止编写基本代码,但我想开始使用它更具体,而不仅仅是学习理论。
可以说,我在HelloWorld.java下面的Java代码:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World");
}
}
将相当于Scala代码是什么?
在你的榜样,你只需要你将必然从别的地方调用主,不是一个函数。 但是,让我们说你有一个像功能
package com.example.hello;
public class HelloWorld {
public static void sayHello() {
System.out.println("Hello, world!");
}
}
(我还添加了一个包为您例如,完整性)。 然后在你的Scala代码,你可以这样做:
import com.example.hello._
(0 until 10).foreach {
HelloWorld.sayHello()
}
问好使用Java功能的10倍,斯卡拉。 该._
在import
进口包的所有成员,或者你可以只import com.example.hello.HelloWorld
。 你甚至可以导入方法本身与import com.example.hello.HelloWorld.sayHello
,这样你就不需要引用HelloWorld
对象在你的代码。
这两种语言编译成JVM字节码,因此调用从Scala的Java代码非常简单,但如果有牵涉隐含参数,从Java调用斯卡拉可以棘手。
等效代码如下:
object HelloWorld extends App {
println("Hello, world!")
}
如果您保存在一个名为代码HelloWorld.scala
那么你可以编译和像这样运行:
$ scalac HelloWorld.scala
$ scala HelloWorld
Hello, world!
或者,如果你在REPL正在努力:
scala> :paste
// Entering paste mode (ctrl-D to finish)
object HelloWorld extends App {
println("Hello, world!")
}
// Exiting paste mode, now interpreting.
defined module HelloWorld
scala> HelloWorld.main(Array.empty[String])
Hello, world!
object HelloWorld{
def main(args: Array[String]): Unit = {
println("hello world")
}
}
要么
object HelloWorld extends App {
println("Hello, world!")
}