본문 바로가기

TIL/Android

코틀린 Null 처리

https://www.inflearn.com/course/%EC%BD%94%ED%8B%80%EB%A6%B0-%EB%81%9D%EB%82%B4%EA%B8%B0/lecture/95761?tab=note 

 

코틀린 3강으로 끝내기 feat. 안드로이드 개발 - 인프런 | 학습 페이지

지식을 나누면 반드시 나에게 돌아옵니다. 인프런을 통해 나의 지식에 가치를 부여하세요....

www.inflearn.com

인프런에서 무료 코틀린 강의가 있길래 봤다.

 

var val, if, for 등 파이썬에도 있던 문법들은 이해가 잘 되는데 NullpointerException, Nullable, Nonnull은 생소해서 정리를 좀 해야겠다. 찾아보니 NPE는 다양한 파생에러를 발생시키고 에러 발생이후 디버깅이 어렵기 때문에 처음 개발할때 예방해서 하는게 중요하다.

https://goddaehee.tistory.com/126

 

[Java] NullPointException 원인, 예방, 해결하기

[Java] NullPointException 원인, 예방, 해결하기 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ NullPointException 원인, 예방, 해결하기 ] 입니다. : ) 이번 회사 업무를 진행 하는 도중 별도의 과제를 받은..

goddaehee.tistory.com

 

fun nullCheck() {

   var name = "joyce"

   var nullName : String? = null // ?를 붙여서 Nullable 변수를 만듦

   var nameInUpperCase = : String = name.toUpperCase()

  var nullNameInUpperCase = : String? = nullName?.toUpperCase()  // ?를 붙여서 null이 아닐경우 대문자값으로 변하고 null일 경우 null을 반환

 

// ?: 엘비스 연산자

   val lastName : String? = null

   val fullName : String = name + " " + (lastName?: "No lastName") // null일 경우 ?:뒤에 나온 값으로 반환

}

fun ingnoreNull(str : String?) {

   val notNull : String = str!! // !!은 이건 무조건 null이 아니다 라는 뜻 - 사용 지양

   val upper : String = notNull.toUpperCase() // 위에서 무조건 null이 아니라고 했기 떄문에 notNull에 ? 안붙임

 

   val email : String? = "aa@na.com"

   email?.let{

      println("my email is ${email}")     // email이 null이 아니면 email을 람다식 내부로 옮겨서 쓸수 있음

   }