문서 편집 권한이 없습니다. 다음 이유를 확인해주세요: 요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다: 사용자. 문서의 원본을 보거나 복사할 수 있습니다. [[분류: 프로그래밍 언어]] == 개요 == Scala는 [[객체지향 언어]]의 특징과 [[함수형 언어]]의 특성을 동시에 가지는 Java기반의 언어이다. Scala는 Scalability를 위한 확장성에 초점을 맞추어 개발되었으며, Java보다 더욱 프로그래밍 언어측면에서 진보한 언어적 특징들을 가지고 있다. == 문법 == === List === Scala에서 리스트는 Nil값을 가지거나, 아니면 list = list with addtional value로 정의된 구조이다. :<code> val x: List[Int] = Nil</code> // List() 즉 empty 리스트 선언 :<code> val y: List[Int] = List(1, 2, 3, 4)</code> // List(1, 2, 3, 4) :<code> 42 :: y</code> // List(1, 2, 3, 4) + 42 => List(42, 1, 2, 3, 4) 이외에도 <code>reverse, contains, map, foldLeft</code>와 멤버함수들이 정의되어 있다. === Functions === 스칼라는 컴파일 타임에 모든 타입을 체크한다. <code>def add(a: Int, b: Int): Int = a + b </code>와 같은 경우에는 Int타입을 Input으로 받고, a + b를 내보내게된다. 특히 <code>return</code>없이 마지막 결과가 리턴되게 된다. === Type Inference === 스칼라는 타입을 명시하지 않아도, 타입을 추론하여 어떤 타입인지를 결정한다. <code>val m = add(1, 2)</code>에서 m의 타입은 자동으로 Int로 된다. 그러나 함수의 인자를 생략하는 것처럼 추론할 수 없는 타입은 컴파일이 되지 않는다. === Expression-Oriented Programming === 자바나 C와는 다르게, Scala는 expression이 변수에 대입될 수 있다. <code>val p = if (i > 0) -1 else -2</code>와 같은 식이 가능하다. == 설치 및 실행 == sudo apt install openjdk-17-jdk-headless #17은 최신 버전으로 변경 가능. (sudo apt-get install default-jdk)도 가능. sudo apt-get install scala >scala Scala 문서로 돌아갑니다.