이번학기 안드로이드 스튜디오에서 코틀린으로 개발을 진행하고 있다. 사실 자바만 써봤고 코틀린을 처음 쓰는 언어인데 자바스크립트이랑 비슷한 느낌인 언어같아서 그냥 사용법 한번 쓱 읽고 개발하는데 자꾸 변수에서 빨간줄이 그어져서 뭔지 찾아 봤다. 코틀린은 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이 아님을 보증해줬기 때문에 에러가 나지 않는 것을 볼 수 있다.
추가 ++
최근에 다시 안드로이드와 코틀린을 공부하면서 다시 정리해 보았다.
언어를 배우는건 늘 새롭고 재밌다.
'• 개발Tip' 카테고리의 다른 글
[Tistory] 글씨 크기 정리 (0) | 2022.01.09 |
---|---|
[안드로이드스튜디오] Execution failed for task ':app:kaptDebugKotlin'.에러 해결 (0) | 2021.10.11 |
[GitHub] 깃허브 데스크탑에서 로컬폴더를 원격레포지토리로 만들기 (0) | 2021.10.06 |