좌충우돌 코딩

코틀린 - 상수 val과 const val의 차이 본문

코틀린/순수 코틀린

코틀린 - 상수 val과 const val의 차이

Tracoding 2023. 3. 21. 18:10
        val myName = "코틀린" 
        var age: Int
        age = 31
        myName = "자바"

위 코드를 실행하면 에러가 발생한다

 

이유는 첫번째 줄 코드인 val myName = "코틀린"을 val가 상수임으로 값을 변경할 수 없는데,

마지막 myName = "자바"라고 재할당을 시켰다.

Val cannot be reassigned

그랬더니 아주 아주 친절하게 Val은 재할당 할 수 없다고 알려준다.

 

그리고 초보자에게 어려운 상황이 있는데.... 그건 바로~

val 그리고 const

코틀린에서 Val과 Const는 둘 다 상수이다.

 

나도 궁금해서 찾아봤다. 무슨 차이가 있는 것인지

 

val은 런타임시 할당이 되는 상수라고 하며, 읽기 전용 상수라고도 불리고 불완전한 상수라고도 한다.

런타임시에 결정되는 상수로 프로그램 작동시에 값이 변경이 될 수 있다고 한다.

 

const val은 컴파일시에 할당이 되는 상수로 클래스나 함수 내의 지역변수에 선언할 수 없다.

오로지 String이나 기본 자료형에만 선언할 수 있으며, 상수명을 짓을 땐 카멜케이스가 아닌 스네이크 케이스를 적용하고 모두 대문자로 지어야한다.

 

한번 더 짚고 넘어가보자.

기본형 자료이 무엇이 있었나??

구분 타입
숫자형 byte
short
int
long
실수형 float
double
문자형 char
부울형 boolean

위 기본형 자료가 아닌 것은 전부 참조형 자료라고 부른다.

대표적으로 String이 참조형 자료이다.

 

이젠 마지막 궁금증이 있을 것 같다. 카멜케이스와 스네이크 케이스!

카멜케이스는 myName, kotlinAppProgramming 등 첫문자는 소문자 새로운 단어가 연결되는 문자는 대문자로 표시하는 방법이다. 중간 단어의 첫문자를 대문자로 표기하면서 낙타 등의 모양과 비슷하다고 해서 카멜케이스라고 부른다.

 

스네이크 케이스는 my_name, kotlin_app_programming 등 단어 사이에 언더바(_)를 넣어서 표시하는 방법입니다.

근무하고 있는 회사에 맞는 코딩 컨벤션를 따르면 될 것 같습니다.

 

 

'코틀린 > 순수 코틀린' 카테고리의 다른 글

코틀린 - 함수(funcation)  (0) 2023.03.23
코틀린 - 반복문(for, while)  (0) 2023.03.22
코틀린 - 컬렉션(Collection)  (0) 2023.03.21
코틀린 - 배열(Array)  (0) 2023.03.21
코틀린 - when문 설명  (0) 2023.03.21
Comments