1. 변수
프로그램이 어떠한 계산을 위해 메모리에 담아두는 것을 변수라고 합니다. 변수는 우선 사용하고자 하는 변수 이름을 선언을 하고 선언한 변수에 원하는 값을 넣고, 변수명을 통해 다시 값을 읽는 방식으로 사용됩니다. 선언은 다음과 같이 var를 통해 선언할 수 있습니다.
var year = 2020
년도라는 의미의 year라는 변수를 선언하고 2020이라는 값을 저장했습니다. 이때 year변수가 어떤 타입의 변수인지는 대입되는 값을 통해 판단되는데 2020은 정수형 숫자이므로 정수형의 year변수가 생성될 것입니다.
var year : Int
변수는 선언하되 값을 담을 수 없는 상황이라면 대신 ': [타입명]'형식으로 변수의 데이터 타입을 지정해 줘야 합니다. 위 예제에서는 year이라는 변수를 선언하면서 해당 변수는 정수형 임을 Int를 통해 알려주고 있습니다.
변수는 기본적으로 null을 허용하지 않지만 타입뒤에 ?를 사용하므로서 null을 허용할 수 있습니다.
var year : Int?
year = null
혹은 타입과 값을 명확하게 처리하기 위해 다음과 같이 하는 경우도 있습니다.
var year : Int = 2020
위에서 처럼 값이나 타입 지정을 통해 변수의 데이터 타입이 결정되면 해당 데이터 타입의 값만 담을 수 있고 다른 데이터타입의 값을 담을 수 없게 됩니다.
변수로 선언하고 사용할 수 있는 데이터 타입은 아래의 표를 참고해 주세요.
[숫자]
Double (64비트 실수) | -1.7E+308의 근사값 ~ 1.7E+308의 근사값 |
Float (32비트 실수) | -3.4E+38의 근사값 ~ 3.4E+38의 근사값 |
Long (64비트 정수) | -2E63 ~ 2E63-1 |
Int (32비트 정수) | `-2,147,483,648 ~ 2,147,483,647 |
Short (16비트 정수) | -32,768 ~ 32,767 |
Byte (8비트 정수) | -128 ~ 127 |
[문자 및 문자열]
Char (문자) | 1개의 문자 ('가') |
String (문자열) | 1개 이상의 문자로 구성된 문자열 ("대한민국") |
[참/거짓]
Boolean | true, false |
Float의 경우 Double보다 작은 범위의 실수를 표현하는 데 사용됩니다. 다만 값을 지정할 때는 Double과 구분하기 위해 값뒤에 F를 붙여 표현합니다.
var myFloat = 2.560214F
Int의 경우 값을 지정 시 보기 편하도록 천 단위를 _문자로 구분해 줄 수 있습니다.
var myInt = 1_234_567
Long은 Int보다 큰 범위의 정수 값을 가질 수 있습니다. 다만 값을 지정할 때는 Int와 구분하기 위해 값뒤에 L을 붙여 표현합니다.
var myLong = 1234567L
숫자의 경우 +연산자를 사용하면 값을 더하지만
var year = 2019
year = year + 1
문자열의 경우 + 연산자는 문자열을 결합하도록 합니다.
var year = "이천"
year = year + "이십년"
2. 상수
변수와 달리 상수는 한번 값을 지정하면 그 값을 바꿀 수 없습니다. 이러한 특징 때문에 상수는 고정된 값을 숫자로 직접 표현하기보다는 상수명으로 특정값을 나타내고자 하는 용도로 많이 사용됩니다.
상수는 선언 시 val을 사용합니다.
val year = 2020
상수는 선언시 일반 변수와 다를 게 없지만
val year : Int = 2020
//또는
val year : Int
year = 2019
한번 값을 지정하면 바꿀 수 없습니다. 이걸 정확히 표현하면 한번 값을 지정하면 다시 값을 지정할 수 없다고 할 수 있습니다.
val year : Int
year = 2019
year = 2019
참고로 에제에서는 그렇게 하지 않았지만 대부분 상수의 경우 상수명은 대문자로 표현하는 것이 관례입니다.
'Mobile > Kotlin' 카테고리의 다른 글
[Kotlin] 반복문 (0) | 2020.12.07 |
---|---|
[Kotlin] 제어문 - 조건문 (0) | 2020.10.01 |
[Kotlin] 에뮬레이터(Emulator)와 스마트폰연결 (0) | 2020.08.10 |
[Kotlin] SDK 설정 살펴보기 (0) | 2020.08.04 |
[Kotlin] android studio (안드로이드 스튜디오) (0) | 2020.06.01 |