Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 리눅스 파일동기화
- C언어
- 3D프린터입문
- Notification
- 데이터 직렬화 포맷
- docker
- ci/cd
- 네이버클라우드
- 3D 프린터 용어
- Jenkins
- github
- linux job
- OnlineIDE
- 3d프린터 초보
- NAS HDD교체
- nas
- octoprint
- IoTNetwork
- 3D프린터
- Token인증방식
- Kotlin
- gitlab
- docker container
- data serialization formats
- git
- 3D모델링
- 코틀린개발환경
- 3D프린터 입문
- 3D
- kubernetes
Archives
- Today
- Total
0과 1을 공부하다.
[Kotlin] 코틀린 Null Safety 본문
728x90
[Kotlin] 코틀린 특징 및 개발환경 구성에서 코틀린의 장점 중 하나로 널 안정성(Null Safety)을 뽑았다. 본 글에서는 왜 코틀린 언어가 널 안정성(Null Safety)가 있는지 알아보고 널 안정성을 위한 방법을 알아본다.
코틀린에서 말하는 널 안정성은 NullPointerException(NPE)을 방지하고 안전한 코드 작성을 돕기 위한 것이다. 널 안정성은 코틀린의 타입 시스템에 통합되어 널 가능성(nullability)을 명시적으로 처리하도록 강제한다.
코틀린에서 타입을 지정하여 변수를 선언할 때는 널 가능성 타입과 널 불가능성 타입으로 지정하여 선언할 수 있다.
- 널 가능성 타입(Nullable type): 변수에 null 값을 허용한다. 타입 뒤에 ?를 붙여 표시한다.
- 널 불가능성 타입(Non-nullable type): 변수에 null 값을 허용하지 않는다.
fun main() {
var nullable: String? = "Hello" // 널 가능성 타입
var nonNullable: String = "Hello" // 널 불가능성 타입
nullable = null
nonNullable = null // 컴파일 오류: 널 불가능성 타입에 null 할당 시도
println(nullable)
println(nonNullable)
}
(safe call)안전한 호출 연산자 (?.)
널 가능성 타입의 변수를 사용할 때, 안전하게 호출 할 수 있도록 한다. 변수에 null 값이 있으면 호출을 무시하고 null을 반환한다.
- 예시 1
val str: String? = “ABC”
str.length // 불가능
str?.length // 가능 (널 아니면 실행, 널이면 null 반환)
- 예시 2
fun main() {
var nullable: String? = "Hello" // 널 가능성 타입
nullable = null
println(nullable?.length) // 예외 발생하지 않고 null을 반환
var name: String = ""
nullable?.let{
name = it // null이 아니라면 name 변수에 nullable 할당
}
println(name)
}
elvis(엘비스) 연산자 (?:)
널 가능성 타입의 변수가 null 일 때 기본 값을 제공한다.
fun main() {
var nullable: String? = "Hello" // 널 가능성 타입
nullable = null
println(nullable?.length ?: 0) // nullable이 null일 경우 0을 반환
}
널 없음 확신 연산자 (!!)
변수에 null 값이 없다고 확신할 때 사용한다. 만약 변수에 null 이라면 NullPointerException 을 발생시킨다.
fun main() {
var nullable: String? = "Hello" // 널 가능성 타입
val length = nullable!!.length // nullable이 null이 아니라고 확신
println(length) // 5 출력
}
※ 본 게시글의 정보가 잘못 되었거나 부족한 부분에 대한 피드백을 환영합니다.
* CopyRight 2024. Jay Park All rights reserved.
728x90
'Study > Kotlin' 카테고리의 다른 글
[Kotlin] 코틀린 리스트/배열 (0) | 2024.07.02 |
---|---|
[Kotlin] 코틀린 문자열 (0) | 2024.07.02 |
[Kotlin] 코틀린 자료형 / 변수 / 상수 / 연산자 (0) | 2024.07.02 |
[Kotlin] 코틀린 시작하기 (0) | 2024.06.30 |
[Kotlin] 코틀린 특징 및 개발환경 구성 (0) | 2023.09.16 |
Comments