이번학기 안드로이드 스튜디오에서 코틀린으로 개발을 진행하고 있다. 사실 자바만 써봤고 코틀린을 처음 쓰는 언어인데 자바스크립트이랑 비슷한 느낌인 언어같아서 그냥 사용법 한번 쓱 읽고 개발하는데 자꾸 변수에서 빨간줄이 그어져서 뭔지 찾아 봤다. 코틀린은 null을 조금 예민하게 다룬다고 한다, null을 예민하게 다뤄서인지 자바에서의 null exception 이슈에 대해 자유롭다고 하는데 ?와 !!을 어떻게 사용해야하는지 간단하게 알아 보도록 하겠다.
// '?' 간단 사용
val myString : String = null //error
val myString : String? = null //not error
// '!' 간단 사용
myObject.name
myObject!!.name
"?" 사용법
아래와 같이 myString과 myString2에 null 값을 입력해 주었을때 첫번째 줄에는 빨간줄이 뜨면서 오류를 보여주는데, 이는 간단하다. 기본적으로 변수에는 null값이 들어갈수 없기때문에 null을 허용한다는 의미의 ?을 선언시에 붙여주면 된다. 이 외에도 객체를 받아와서 사용할때도 Object?.value의 형식으로 사용한다면, Object가 null일 수도 있다는 의미이다. 서버에 연동되서 값을 받아올 경우 이런 null체킹을 나름의 의무(?)적으로 할 수 있어서 뒤에서 에러를 방지하는데 좋은거 같다.
"!!" 사용법
!! 자체의 의미는 해당 값이 null 값이 아니라는 것을 확신시켜 주는 역할을 한다.
위 코드는 이미 작성하신 분의 코드가 좋아서 출처를 남기고 가져왔다. 주석에 달린 설명대로 !!을 통해 null이 아님을 보증해줬기 때문에 에러가 나지 않는 것을 볼 수 있다.
[Kotlin] 기본 - Null 처리 '? / ?. / !! / ?: / lateinit / lazy'
Kotlin, Null 처리 Null 허용 (? 연산자) 코틀린(Kotlin)에서는 기본적으로 Null값을 허용하지 않으므로, 기본적으로는 모든 객체가 생성과 동시에 값을 초기화 필요 초기화하지 않아 에러가 발생하는 예
jaejong.tistory.com
추가 ++
최근에 다시 안드로이드와 코틀린을 공부하면서 다시 정리해 보았다.
[코틀린 문법] 코틀린에서 ? 와 !! 사용법 및 nullable에 대해서, nullsafe
코틀린을 사용하다보면 ? 와 !! 그리고 null과 nullable이라는 키워드를 한번씩은 들어 봤을 것이다. 코틀린은 JAVA와 100% 호환된다. 그러면서 자바의 여러 단점들을 보완하고자 하는데, 먼저 자바에
devforyou.tistory.com
언어를 배우는건 늘 새롭고 재밌다.
'• 개발Tip' 카테고리의 다른 글
[Tistory] 글씨 크기 정리 (0) | 2022.01.09 |
---|---|
[안드로이드스튜디오] Execution failed for task ':app:kaptDebugKotlin'.에러 해결 (0) | 2021.10.11 |
[GitHub] 깃허브 데스크탑에서 로컬폴더를 원격레포지토리로 만들기 (0) | 2021.10.06 |