[Kotlin 학습]?:표현식 사용

1912 단어 문제 해결

문제 설명


Kotlin 코드에서는 다음과 같은 코드가 자주 표시됩니다.
val userId = ctx.session?.userId ?: throw BizException("no_session_user_for_db_policy")

그중의 ?.?: 연산자는 도대체 무슨 뜻입니까?

해답하다


첫 번째 물음표는 이해하기 어렵지 않다. 그것은 비어 있을 수 있는 양에 대한 판단이다.변수를 정의할 때 유형 뒤에 물음표를 붙일 수 있습니까?이 변수가 Nullable임을 나타내며 null이 될 수 없음을 나타내지 않습니다.
왼쪽이null값이면 오른쪽으로 되돌아와 후퇴합니다.그렇지 않으면 왼쪽 값만 되돌려줍니다.
a ?: b는if(a!=null)aelseb의 약자입니다.
기타 유사 코드 블록:
val x: String? ="foo"
val y: String = x ?:"bar"      //"foo", because x was non-null    

val a: String? = null
val b: String = a ?:"bar"      //"bar", because a was null

좋은 웹페이지 즐겨찾기