Подтвердить что ты не робот

Использование библиотек Java в Scala

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

Допустим, у меня есть следующий Java-код в HelloWorld.java:

public class HelloWorld {

    public static void main(String[] args) {
        System.out.println("Hello, World");
    }

}

Каким будет эквивалентный код Scala?

4b9b3361

Ответ 1

В вашем примере у вас есть только основная функция, а не функция, которую вы обязательно должны будете звонить из другого места. Но пусть сказал, что у вас есть функция вроде

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 раз в Scala. ._ в import импортирует все элементы пакета или, альтернативно, вы можете просто import com.example.hello.HelloWorld. Вы даже можете импортировать этот метод с помощью import com.example.hello.HelloWorld.sayHello, чтобы вам не нужно ссылаться на объект HelloWorld в вашем коде.

Оба языка компилируются в байт-код JVM, поэтому вызов Java-кода из Scala очень прост, хотя вызов Scala из Java может быть более сложным, если есть неявные параметры.

Ответ 2

Эквивалентным кодом будет:

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!

Ответ 3

object HelloWorld{
      def main(args: Array[String]): Unit = {
      println("hello world")
    }

}

или

object HelloWorld extends App {
  println("Hello, world!")
}