기본적으로 변수와 상수는 값을 저장하고 데이터를 전달하는 데 사용되고
타입은 변수와 상수에 저장된 값의 유형을 나타내요
이번에는 코틀린에서 변수를 만드는 방법을 알려드릴게요
변수 선언과 타입 종류
변수는
var 변수이름 : 타입 = 값
이런 식으로 변수를 선언해요
예를 들자면
1 2 3 4 5 | fun main() { var num : Int = 5 var name : String = "헌피언스" var ox : Boolean = true } |
이렇게요
다른 언어와는 다르게 var을 쓰고 타입을 변수명 뒤에 쓰는 것이 신기했어요
타입 |
설명 |
예시 |
String |
문자열 |
"Hello" "ㅎㅎ" |
Int |
정수 |
5 10 |
Char |
단일 문자 |
'X' 'U' |
Boolean |
true / false |
true false |
Double |
부동소수점의 실수 |
3.14 39.288 |
List |
값을 요소로 저장하는 컬렉션 |
3,6,2,4,3,6 | "Hi","Hi" |
Set |
고유한 값의 요소를 저장하는 컬렉션 |
1,2,3,4,5,6 | "Hel","lo" |
Map |
키와 값을 쌍으로 요소를 저장하는 컬렉션 |
"hot" to 40 |
Float | 부동소수점의 실수 | 8.49 2.102 |
Long | 정수 | 21474 |
Short | 정수 | 32767 |
Byte | 정수 | 128 |
표로 정리해봤어요
List, Set, Map은 컬렉션 타입이라고 나중에 알아볼거예요
Int, Long, Short, Byte도 모두 정수인데 다 차이점은 있어요 그 차이점도 나중에 알려드릴거예요!
1 2 3 | fun main() { var num : Int = "Str" } | cs |
그리고 위처럼 변수를 선언하고 실행하면 오류가 나는데요 왜냐하면
변수에는 타입에 맞는 값이 들어가야하는데
위 처럼 Int 타입 즉 정수 타입에는 문자열이 들어가지 못해요
1 2 3 4 5 | fun main() { var num : String = "Kim" num = "Park" } |
읽기 전용 변수
위에서 알려드린 변수는 값을 변경할 수 있었는데요
하지만 값을 변경할 수 없는 변수를 사용해야할 경우도 있어요
예를 들면, 수학의 파이같은 것은 3.14...로 바뀌지 않는 값이예요
코틀린에서는 이런 변수를 읽기 전용 변수(read only) 라고 해요
값이 변경될 수 있는 변수는 var을 써서 선언했는데요
읽기 전용 변수에서는 val을 써서 선언을 해요
1 2 3 4 5 | fun main() { val num : Int = 5 val name : String = "헌피언스" val ox : Boolean = true } | cs |
이런 식으로요
1 2 3 4 5 | fun main() { val num : Int = 5 num = 10 } | cs |
val로 선언을 한 변수는
변경하려고 하면 읽기 전용 변수이기 때문에 컴파일 오류가 나요
값을 변경할 필요 없는 변수는 var 대신에 val 을 사용하는 것이 코드를 개선시키는 방법 중 하나예요
타입 추론
코틀린에는 타입 추론이라는 것이 있어요
이것은 변수를 선언할 때 알아서 변수의 타입을 확인하여 생략할 수 있게 해주는 기능이에요
1 2 3 4 5 | fun main() { var num = 5 var name = "헌피언스" var ox = true } | cs |
위처럼 타입을 생략해도 타입 추론으로 인해 알아서 값에 맞는 타입으로 변해요
그렇다고 해서 이미 타입 추론으로 선언된 변수에 다른 타입의 값으로 변경을 하려고 하면
오류가 나요
컴파일 시점 상수
val 변수는 값을 변경할 수 없다고 했는데요
하지만 val 변수는 진정한 상수가 아니예요
val 변수가 다른 값을 반환하는 특별한 경우가 있어 초기화된 값을 절대로 변경하지 않는 변수의 경우에는 컴파일 시점 상수가 사용돼요
컴파일 시점 상수는 이름 그대로 컴파일될 때 값이 지정되는 것이기에
main 함수를 비롯한 모든 함수 외부에서 정의되어야 해요
그리고 컴파일 시점 상수는 프로그램 실행 전에 컴파일러가 알 수 있어야 해서
아래 기본 타입 중 하나가 되어야 해요
▶ String
▶ Int
▶ Double
▶ Float
▶ Long
▶ Short
▶ Byte
▶ Char
▶ Boolean
컴파일 시점 상수를 만드는 방법은
함수 밖에서 val 변수를 만들어 const 를 붙이면 돼요
1 2 3 4 5 6 | const val NEVER_CHANGE : Int = 5000 const val NAAA = "홍길동" fun main() { var num : Int = 5 var name : String = "헌피언스" var ox : Boolean = true } | cs |
위에 코드처럼 함수 밖에 저런 식으로 변수를 만드는 것으로
변수의 값이 절대 변경되지 않게 돼요
참고로 변수의 이름을 모두 대문자로 한 것은 그저 사람들 사이에서 그렇게 하자고 한 것뿐이예요
그리고 이렇게 하면 구별도 쉬워 코드를 알기 쉬워요
지금까지 코틀린 변수 선언과 타입, 상수를 알아보았는데요
이해가 됐나요? 안 되셨다면 댓글로 남겨주세요!
'프로그래밍 > Kotlin 코틀린' 카테고리의 다른 글
IntelliJ | 코틀린 REPL을 사용해보자! (0) | 2019.12.21 |
---|