우선 프로그래밍 언어에서 가장 기초가 되는 변수와 상수의 선언과 데이터 타입을 알아보자.
Scala 에서 변수는 var
로 선언한다. 변수는 다른 값으로 변경할 수 있다.
아래 예시 첫번째 줄은 name
이라는 메모리 위치에 "john"
이라는 데이터를 변경할 수 있는 값( var
)으로 할당( =
)하겠다는 뜻이다.
그 후 name
메모리 위치에 "mary"
로 값을 새로 할당했다.
var name = "john"
name = "mary"
변수는 다른 값으로는 변경할 수 있지만 다른 타입으로는 변경이 불가하다
예를 들어 아래와 같이 문자열 ( "john" ) 타입의 변수를 정수 ( 42 ) 타입으로 변경할 수는 없다.
var name = "john"
name = 42 // NOT ALLOWED!
상수는 val 로 선언한다. 상수는 다른 값으로 변경할 수 없다. 타입이 같더라도 변경할 수 없다.
val name = "john"
name = "mary" // NOT ALLOWED!
데이터 타입은 String (문자열), Boolean (true/false), Int (정수) 등과 같이 프로그래밍 언어가 데이터를 저장하는 단위다.
Scala 에서는 타입이 중요한 역할을 한다. 강력한 타입방식을 채택하여 Scala 는 컴파일 단계에서 최적화가 이루어져 실행속도 향상이 되고 프로그래밍 오류가 방지된다.
기본적인 데이터 타입을 살펴보자.
Scala 는 변수나 상수를 선언할 때 데이터 타입을 함께 줄 수 있다.
val name: String = "john"
var age: Int = 24
데이터 타입을 선언 시점에 주지 않아도 Scala 는 컴파일러가 데이터 타입을 추론한다.
따라서 데이터 타입을 명시적으로 선언하지 않았어도 변수는 다른 타입으로 바꿀 수 없다.
var age = 24
age = 26 // OK
age = "26" // NOT ALLOWED!
Scala 는 주로 camel case 를 사용한다. 단어의 첫 글자마다 대문자화하면 이름이 낙타(camel)의 혹처럼 생겨서 camel case 라고 불린다.
val UpperCamelCase: String = "UpperCamelCase"
var lowerCamelCase: String = "lowerCamelCase"
변수나 상수는 첫 글자를 소문자로 하는 lowerCamelCase 를 사용하고 추후 등장할 클래스나 오브젝트는 UpperCamelCase 를 사용한다.