| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- 반복문
- 스프링부트 버전
- MySQL
- 널 안전성
- 버전의 중요성
- 통합개발환경
- while문
- do while문
- 인텔리제이
- 컴패니언
- when문법
- 람다함수
- for문
- 엘비스
- lateinit
- dbms
- 맥북M1
- 로그캣
- Kapt
- downto
- 오브젝트
- 안드로이드 스튜디오
- Until
- 접근제한자
- 타입별칭
- 초기화 미루기
- typeAlias
- 코틀린
- 스프링부트2.7.9
- 오버라이드
- Today
- Total
좌충우돌 코딩
코틀린 - 상수 val과 const val의 차이 본문
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 |