티스토리 뷰
코틀린은 변수를 사용할 때 값이 할당되어 있어야 합니다.
그렇기 때문에 null이면 오류가 발생하는데 null을 허용하려면 ?를 사용하면 됩니다.
var x: String = null // 에러
var y: String? = null // 작동
x는 ?를 사용하지 않아 에러가 나지만 y는 에러가 나지 않습니다.
var x: String = "OSZ"
var y: String? = null
println(x.length) // 3
println(y.length) // 에러
println(y?.length) // null
println(y!!.length) // 널 검사를 안함 (에러)
이렇게 사용하면 아무것도 안 들어있을 때 null을 호출하게 이용이 가능합니다.
!!를 붙이면 null 검사를 안 하게 됩니다.
덕분에 코드에선 빨간줄이 안 생기지만 실행하면 에러가 발생합니다.
세이프 콜(?.)과 엘비스 연산자(?:)를 이용해 null을 허용한 변수를 더 안전하게 사용하는 방법입니다.
var x: String? = "OSZ"
x = null
println(x?.length ?: -1) // -1
첫 번째 줄은 ?를 붙여 null을 허용한 변수 x에 OSZ를 담습니다.
두 번째 줄은 x를 null로 바꿔줍니다.
세 번째 줄에서 x?.length는 x가 null이면 널을 출력하고 null이 아니면 문자열 수를 출력하는데 ?: -1가 들어가 null이면 null대신 -1을 출력해줍니다.
세 번째 줄은 아래 코드와 같습니다.
println(if (x != null) x.length else -1) // -1
그리고 자바에서는 이렇게 길어집니다.
String x = "OSZ";
x = null;
if (x != null){
System.out.println(x.length());
} else {
System.out.println(-1);
}
'코틀린 네이티브' 카테고리의 다른 글
코틀린 람다식 (0) | 2020.10.21 |
---|---|
코틀린 함수 선언하고 호출하기 (0) | 2020.10.20 |
코틀린 연산자 (0) | 2020.10.20 |
코틀린 자료형 변환, 검사하기 (0) | 2020.10.18 |
코틀린 변수와 자료형 (0) | 2020.10.18 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 카카오톡
- Flutter
- 노래
- 안드로이드앱개발
- 구구단앱
- 오토핫키
- 구구단
- 챗봇
- 채팅
- MouseMove
- 매크로
- inputbox
- JS
- 자동답장
- 구구단공부
- 안드로이드클라이언트
- 명언
- 안드로이드앱
- 구구단어플
- 카카오봇
- 코틀린
- 자바스크립트
- sendinput
- 안드로이드
- loop
- 앱개발
- 안드로이드스튜디오
- 안드로이드네이티브
- 플러터
- 로또
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함