라벨이 Safe Call인 게시물 표시

null safety through type conversion (null 안정성을 위한 형변환)

null 안정성을 위한 형변환 null 값이 담긴 객체에 대해 보다 안정한 형 변환 방법을 제공하고 있다. null 을 허용하는 변수가 null 값이 들어있지 않다는것을 보장해주면, null 을 허용하지 않는 타입으로 스마트 캐스팅이 발생한다. null 을 허용하는 타입  null 을 허용하는 타입으로 선언했을 경우, 해당 타입에서 메서드를 호출하게 될 경우 아래와 같은 에러가 발생한다. fun testMethod1 (str: String?) { println (str. length ) } Kotlin: Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type String?  str 이 null 일 경우, length 를 구할 수 없으므로 이를 safe call 연산자(?.) 을 사용하던지, non-null asserted (!!.) 를 사용하여 null 허용 타입으로 부터 예외처리를 해야 한다. Safe Call (?.): Safe call은 Kotlin에서 null 안정성을 보장하기 위한 기능 중 하나로, 변수가 nullable하면서 null일 수 있는 경우에만 사용됩니다. Safe call 연산자인 ?.을 사용하면, 해당 변수가 null인 경우에도 프로그램이 중단되지 않고 null을 반환합니다. 즉, 호출된 메서드나 프로퍼티가 null인 경우, 그냥 null을 반환하고 뒤따라오는 연산은 수행되지 않습니다. fun main () { testMethod1 ( " 안녕하세요 " ) testMethod1 ( null ) } fun testMethod1 (str: String?) { println (str?. length ) } 결과값 > 5 null testMethod1(null): 두 번째 호출은 null을 전달하고 있습니다. 이 경우 str은 nullable이며 null을 가지고 있기 때문에, safe