Scala

http://scala-lang.org

1. 스칼라 언어는 누가 만들었을까?

Martin Ordersky 라는 스위스 어느 대학의 교수님이 만들었음.

2. 스칼라의 특징은?

  • JVM 위에서 작동하는 언어 (Java와 호환)

  • 사용하다보니 Java에 비해서 작성해야 하는 코드의 양이 많이 줄어든다.

HelloJava.java
public class HelloJava {
  public static void main(String[] args) {
    System.out.println("Hello, Java!");
  }
}
HelloScala.scala
object HelloScala {
  def main(args: Array[String]): Unit = {
    print("Hello, Scala!")
  }
}

여기까지만 적었다면 분명 Java와 Scala 별로 차이 없네~ 하고 끝날꺼 같아서 진짜 줄어든 형태를 적어본다.

HelloScala2.scala
object HelloScala2 extends App {
  print("Hello, Scala2")
}
  • Java보다 규칙이 단순하다.

예를들면, 세미콜론 생략, 인자가 없는 함수 호출 시 () 생략 가능.

  • 컴파일러의 Type 추론 능력이 뛰어나다.

  • 패턴 매칭으로 사용하면 편한점이 있다.

val test = "Hello, Scala2"

test match {
  case "Hello, Scala" => print("wrong")
  case "Hello, Scala2" => print("yes!")
  case _ => print("????")
}
  • 변수의 선언이 간편하다.

val test1: Int = 1              <- Java의 final 변수와 같다. 나중에 수정이 불가능
var test2: Int = 2              <- 수정 가능

test1 = 3                       <- 오류 발생
test2 = 4
  • Java 의 Pojo 객체처럼 데이터만 담을 수 있는 객체를 정의해서 자료형으로 쓰기 편하다. (이런 객체를 이용하여 위에서 적었던 패턴 매칭에 활용할 수도 있다.)

ArticleTest.scala
case class Article(id: Long, title: String, content: String)

object ArticleTest extends App {
  val article = Article(1, "title", "content")

  print(article)
}

다양한 내용들이 더 있다. 많이 사용되는곳이라던지... 하지만! 글이 길어지면 읽지 않는 사람이 있다고 들었으니, 여기까지만 알아보도록 한다.

3. 스칼라에 대해서 더 알아보고 싶다면?

스칼라 공식 홈페이지 문서

스칼라 시작하기

자바 개발자를 위한 스칼라 튜토리얼

Last updated