일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Kotlin
- 안드로이이드 submodule
- 유니티
- github submodule
- 서브모듈 sourcetree
- Android Studio
- 티스토리
- DataBinding
- github
- java
- 앱개발
- 게임개발
- Unity
- 개발
- 코틀린
- 2d게임
- gitlab submodule
- 타이쿤
- 쿼터뷰
- submodule pull
- 앱
- firebase
- Android
- submodule sourcetree
- 카페오냥
- 내 맘대로 정리한 안드로이드
- GIT
- 안드로이드
- 서브모듈 pull
- 안드로이드개발
- Today
- Total
Uing? Uing!!
[내 맘대로 정리한 Kotlin] let으로 null-check 하기 본문
Null-check
Kotlin을 이용해 개발하다 보면 nullable한 값을 처리해야 할 일이 잦다.
x가 확실히 non-null이라는 것을 가정할 경우에는 x!!로 활용하여 null이면 exception(NPE, Null-Pointer Exception)이 나도록 하기도 하고,
반대로 null일때도 다른 값으로 활용하고 싶다면 x?:0과 같이 null일 때 대신 사용할 값을 정해 주기도 한다.
하지만 '어떤 값이 null이 아닐 경우에만' 특정 기능을 실행하고 싶을 때도 많다.
예를 들면 '저장된 이름이 null이 아닌 경우에만 인삿말을 출력한다'와 같은 상황.
일반적으로 이렇게 어떤 값이 null인지 아닌지 확실하지 않는 경우, 이를 체크하기 위해 아래처럼 사용하곤 한다.
if (name != null) {
println("안녕하세요, $name 님.")
}
Kotlin의 Let문
Kotlin에는 let, apply, run, also라는 특이한 문법들이 있다.
각각에 대해서도 이후에 소개할 생각이지만, 우선은 let에 대해서만 이야기하겠다.
let은 그 구문 안에서 주어진 값을 활용하여 코드를 실행한다.
이를테면 이런 식이다.
name.let{
println("안녕하세요, $it 님.")
}
이렇게 name.let을 하면, 중괄호 안에서 name을 it이라는 형태로 사용할 수 있다.
하지만 위의 코드만으로는 null-check가 되지 않아서, name이 null이라면 "안녕하세요, null 님."이라고 출력이 된다.
Let으로 null-check 하기
Let으로 null-check를 하기 위해서 복잡한 처리를 해야 하지는 않는다.
단순히 (변수).let이 아닌, (변수)?.let으로 작성하면 된다. 이렇게.
name?.let{
println("안녕하세요, $it 님.")
}
?한 글자만을 이용해 null-check를 넣어 주면,
let문은 name이 null인지 아닌지를 판별한 후, null이 아닐 경우에만 그 안의 내용을 실행해 준다.
'Kotlin' 카테고리의 다른 글
[내 맘대로 정리한 Kotlin] @JvmOverloads: constructor를 일일이 상속받아 만들기 귀찮다면! (0) | 2021.03.30 |
---|---|
[내 맘대로 정리한 Kotlin] 확장 함수와 확장 프로퍼티: 직접 수정할 수 없는 클래스에 함수&프로퍼티 추가하기 (2) | 2020.12.13 |
[내 맘대로 정리한 Kotlin] vararg(가변인자)로 파라미터 원하는 개수만큼 받기 (0) | 2020.12.11 |
[내 맘대로 정리한 Kotlin] isEmpty와 isBlank의 차이점 (0) | 2020.09.30 |
[내 맘대로 정리한 Kotlin] lateinit과 by lazy의 차이점 (1) | 2020.09.30 |