빠른 시작 (5) 학습 코 틀린 - 공간 보안

소개

코 틀린은 개체가 두 가지로 구분 될 수 있고, 비 - 널 객체 될 수있다 빈 목적

기본값은 널 빈 객체를 부여하지 발견되면, 오류가 빨간색으로 표시됩니다 감지 null 이외의 오브젝트 코드입니다.

객체는 메소드를 호출하는 경우, 오류 코드 탐지는 빨간색으로 표시되고, 비어있을 수 있습니다

var s: String = "hello" //不可为空
s = null//标红报错

var s: String? = "hello"
s=null //代码检测通过
println(s.length)//标红报错

전화는 빈 객체의 속성 또는 메서드를 할 수있다

이점은 우리가 객체가 비어 있지해야합니다 경우, 우리가 널 포인터 오류없이 메서드를 호출 할 수 있다는 것입니다.

우리는 개체의 빈 속성을 호출해야하는 경우에, 그것을 어떻게 할까?

우리는 null 객체가있는 방법, 코드 오류 감지 모노그램 레드, 그래서, 코 틀린를 호출하는 경우 우리가 속성을 호출하거나 방법은 빈 객체가 될 수있는 몇 가지 방법을 제공 것을 알고 위

1. 빈 판단 조건의 경우 (XX! = NULL)

var s: String? = "hello"
if(s!=null){
    println(s.length)
} 

2. 안전 호출?

사용 ?.목적이 비어있는 경우, 당신은 null을 얻을 것이다, 그러나이 프로그램은 멈추지 않을 것입니다

어딘가에 개체가 비어 체인 통화 지원, null가 돌려 주어집니다

var s: String? = "hello"
println(s?.length) //s为空,则返回null,否则返回s.length
println(s?.length+1) //这里代码检测会报错
println(s?.length?.plus(1)) //修改之后的,通过代码检测

3. 엘비스 연산자?

브로 일 = 1 식 2 식 :?

식 (1)가 null의 경우, 표현은 반환이 내용을 반환

val l: Int = if (b != null) b.length else -1

//相当于上面的代码
//如果b为空,则返回l=-1,b不为空,l=b.length
val l = b?.length ?: -1

4. !!

개체, 컴파일 (오류 코드 힌트) 비어 있지만, 실행 시간은 널 포인터 예외가 발생합니다

var s: String = null
pritnln(s!!.length) //运行时候回报错

추천

출처www.cnblogs.com/kexing/p/11293726.html