차이점!! 그리고 ? Kotlin의 연산자
Kotlin에서 어설션 연산자 !!
및 안전 호출 연산자 ?
널 안전으로 작업하십시오.
이 문서에서는 null 안전의 개념을 소개합니다. !!
방법도 살펴보겠습니다. 그리고 ?
Kotlin에서는 null 안전을 지원합니다.
널 안전의 개념
Kotlin의 유형 시스템은 null 참조 문제를 제거하는 것을 목표로 합니다. 문제는 null 개념이 있는 많은 프로그래밍 언어에서 null 참조 멤버에 액세스하면 예외가 발생한다는 것입니다.
Kotlin에서는 이 예외를 NullPointerException
또는 NPE라고 합니다. Kotlin의 유형 시스템은 null 안전을 통해 null 참조 문제를 극복하는 것을 목표로 합니다.
시스템은 null 참조를 보유할 수 있는 참조와 보유할 수 없는 참조를 구별합니다. 예를 들어 표준 문자열 변수는 null
을 보유할 수 없지만 String?
을 보유할 수 있습니다. 할 수 있다.
다음은 동일한 것을 보여주는 예입니다.
첫 번째 예에서는 null이 아닌 참조를 의미하는 표준 변수를 사용합니다.
fun main() {
var s: String = "Hello" // Regular initialization means a non-null value
println(s)
}
출력:
표준 변수와 함께 null
을 사용하려고 하면 오류가 발생합니다.
fun main() {
var s: String = null
println(s)
}
출력:
두 번째 예에서는 String?
을 사용하며 null
일 수 있습니다.
fun main() {
var s: String? = null // we can set this to null
print(s)
}
출력:
보시다시피 String?
null
을 보유할 수 있습니다. 따라서 표준 변수 초기화인 경우 Kotlin의 유형 시스템은 null
값이 없음을 이해할 수 있습니다.
따라서 NPE에 대해 걱정하지 않고 이러한 참조를 빠르게 호출할 수 있습니다.
그러나 null
을 보유할 수 있는 변수는 어떻습니까? 이러한 변수는 NPE 안전하지 않기 때문에 이러한 변수에 직접 액세스할 수 없습니다.
fun main() {
var s: String? = null // we can set this to null
print(s)
val l = s.length // This throws error as 's' can be null
}
출력:
그렇다면 이러한 변수에 어떻게 액세스합니까? 그리고 답은 ?
을 통해서입니다. 그리고 !!
연산자.
Null 안전 연산자 ?
코틀린에서
null 참조 멤버에 액세스하는 한 가지 방법은 ?
의 도움을 받는 것입니다. 이 연산자를 사용하면 변수가 null이 아닌 경우 값을 반환하고 그렇지 않은 경우 null
을 반환합니다.
이를 이해하기 위해 아래 예를 살펴보겠습니다.
첫 번째 예에서는 null이 아닌 값을 사용하고 길이를 가져옵니다.
예 1:
fun main() {
var s: String? = "Hello"
println(s)
val l = s?.length
print(l)
}
출력:
이제 변수를 null
로 초기화합니다.
예 2:
fun main() {
var s: String? = null
println(s)
val l = s?.length
print(l)
}
출력:
안전한 연산자 ?
체인 생성에도 도움이 됩니다.
예를 들어 회사의 직원을 생각해 보십시오. 그는 관리자 밑에서 일할 팀 리더가 있을 수 있습니다.
?
를 사용할 수 있습니다. 다음과 같은 방법으로 체인을 만들고 David의 관리자 이름에 액세스합니다.
employeename?.teamleader?.manager?.name
위 구문을 다음과 같이 읽을 수 있습니다.
employeename
이 null이 아닌 경우 부서를 반환합니다.department
가 null이 아닌 경우 관리자를 반환합니다.manager
가 null이 아닌 경우 이름을 반환합니다.
변수 중 하나라도 null
인 경우 구문은 null
을 반환합니다.
Null이 아닌 어설션 !!
Kotlin의 연산자
null 참조 멤버에 액세스하는 또 다른 옵션은 !!
를 사용하는 것입니다. 운영자. NPE 애호가를 위한 것입니다.
따라서 null이 아닌 참조 멤버에 액세스하여 NPE가 있는 경우 값을 제공하거나 그렇지 않으면 NPE를 발생시키려는 경우 Kotlin에서 이 연산자를 사용할 수 있습니다.
금고 ?
에 대해 했던 것과 동일한 두 가지 예를 고려해 봅시다. null이 아닌 어설션 !!
을 이해하는 연산자 운영자가 작동합니다.
예 1:
fun main() {
var s: String? = "Hello"
println(s)
val l = s!!.length
print(l)
}
출력:
예 2:
fun main() {
var s: String? = null
println(s)
val l = s!!.length
print(l)
}
출력:
Kailash Vaviya is a freelance writer who started writing in 2019 and has never stopped since then as he fell in love with it. He has a soft corner for technology and likes to read, learn, and write about it. His content is focused on providing information to help build a brand presence and gain engagement.
LinkedIn