val data: String? = "call me maybe."
kotlin의 변수들은 기본적으로 null을 허용하지 않는데, 이를 가능하게 하는 것이 존재한다.
swift의 optional과 거의 동일한 기능의 nullable인데 형태도, 사용법도, 기능도 굉장히 비슷하다.
if (data != null) {
println(data.uppercase())
}
println(data?.uppercase())
null을 포함할 수 있기 때문에 두 번째 줄과 같이 간편하게 데이터의 유효성을 체크할 수 있고
val num1: Int = 3
val num2: Int? = 10
val num3 = num1 + num2 //(X)
null을 포함할 수 있기 때문에 기본 변수와는 다른 타입으로 간주하고, 바로 연산을 진행할 수도 없다.
val num1: Int = 3
val num2: Int? = 10
val num3 = num1 + num2 as Int
따라서 위와 같이 캐스팅도 해야하고
val num1: Int = 3
val num2: Int? = 10
val num4 = num1 + num2!!
강제 언랩핑도 존재한다.
cities.company?.address?.streetAddress ?: "Unknown"
체이닝도 존재하고, 형태는 조금 다르지만 (이름도 엘비스 연산자...) swift의 '??'와 동일한 기능을 하는 연산자도 있다.
'학습 노트 > Kotlin (2024)' 카테고리의 다른 글
004. loop와 function (0) | 2024.05.05 |
---|---|
003. 조건문과 array 그리고 list (0) | 2024.05.05 |
002. 기본 연산자들 (0) | 2024.05.04 |
001. 출력과 기본 자료형 (0) | 2024.05.04 |