일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 안드로이드
- doitandroid
- 코테
- java
- select
- groupby
- 인프런
- 오블완
- 혼공파
- 알고리즘
- 정보처리기사
- 기술면접
- 코틀린
- SQL
- 혼공단
- 정처기
- 티스토리챌린지
- join
- 카카오코테
- Til
- MySQL
- 자료구조
- CS
- Android
- 스터디
- 자바
- Kotlin
- 프로그래머스
- 안드로이드스튜디오
- 혼공챌린지
- Today
- Total
Welcome! Everything is fine.
[Kotlin] 1강. 코틀린에서 변수를 다루는 방법 본문
* 인프런 강의 - 자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)을 듣고 정리한 내용입니다.
1강. 코틀린에서 변수를 다루는 방법
우테코가 끝나고 코틀린에 대한 공부가 필요하다고 느꼈다.
인프런 블프에서 겟-한 강의를 이용해 기본부터 공부해보기로 했다.🙂
사실 나는 자바를 아주 잘 안다고 할 순 없지만..자바도 복습하며 공부 할 수 있을 것 같아 골랐다!
변수 선언 키워드 - var과 val의 차이점
코틀린에서는 모든 변수에 수정 가능 여부(var/val)를 명시해주어야 한다. 아래 예시 코드를 보자.
var number = 10L
val number = 10L
var과 val의 차이는 다음과 같다.
- var - variable의 약자, 값을 바꿀 수 있음
- val - value의 약자, 값을 바꿀 수 없음(아직 초기화되지 않은 변수에 한해서 최초 1번 값을 넣어줄 수 있음, val 컬렉션에 element 자체는 추가할 수 있음)
타입을 꼭 작성해야하는 자바와 달리 코틀린은 타입을 의무적으로 작성하지 않아도 된다. 단, 초기값을 지정해주지 않으면 무조건 타입 명시해야한다. 만약 값을 넣어주지 않고 사용하면 에러가 발생한다.
다음과 같이 초기값을 지정하지 않고 사용할 경우 에러가 발생한다.
var number: Long
println(number) // 에러
💡 클린코드 TIP
모든 변수는 우선 불변(val)으로 만들고 꼭 필요한 경우 가변(var)으로 변경한다.
Kotlin에서의 Primitive Type
코틀린에서는 모두 Long인데 성능상 문제 없나?
코틀린 공식 문서에서는..
숫자, 문자, 불리언 타입과 같은 타입은 내부적으로 특별한 표현을 갖는다.
이 타입들은 실행 시 Primitive Value로 표현되지만, 코드에서는 평범한 클래스처럼 보인다.
Kotlin에서의 nullable 변수
코틀린에서는 기본적으로 null이 들어갈 수 없도록 해놨다. nullable 변수를 별다른 처리 없이 사용한다면 에러가 발생한다.
var number = 1_000L
number = null // 에러
다음과 같이 안전 호출 연산자인 ? 을 사용해 nullable 변수를 처리할 수 있다. 이렇게 ? 을 붙이면 아예 다른 타입으로 간주된다.
var number: Long? = 1_000L // null이 들어갈 수 있는지 없는지에 대해 명시해줘야함
number = null // 가능
Kotlin에서의 객체 인스턴스화
코틀린은 자바와 다르게 new를 붙이지 않는다.
var person = Person("김민지")
'Kotlin' 카테고리의 다른 글
[Kotlin] 6강. 코틀린에서 반복문을 다루는 방법 (0) | 2023.12.06 |
---|---|
[Kotlin] 5강. 코틀린에서 조건문을 다루는 방법 (1) | 2023.12.06 |
[Kotlin] 4강. 코틀린에서 연산자를 다루는 방법 (0) | 2023.12.02 |
[Kotlin] 3강. 코틀린에서 Type을 다루는 방법 (0) | 2023.11.28 |
[Kotlin] 2강. 코틀린에서 null을 다루는 방법 (1) | 2023.11.28 |