코틀린 언어 정리 1-2
기본 - 형 변환, 변수, 상수
형 변환
is, !is
객체의 타입을 확인할 때 사용합니다.
스마트 캐스팅
코틀린에서 객체지향 개념에 의해 프로그래밍을 하는 경우 객체를 Any 등의 상위 타입 변수/매개변수 등으로 전달 받은 후 원래의 하위 타입으로 캐스팅 하여 사용하는 경우가 종종 있습니다. 이 때 상위 타입(Any 타입이라고 가정) 변수로 전달 받은 객체를 is 연산자로 확인 하지 않고 실제 타입의 변수에 대입하면 컴파일 에러가 발생합니다. 그런데 is 연산자로 타입 확인을 한 이 후 라면 상위 타입으로 전달 받은 객체를 하위 타입으로 선언된 객체 변수에 대입할 수 있습니다. 더 나아가 하위 타입의 변수에 직접 대입 하지 않고도 상위 타입 변수를 원래의 하위 타입으로 간주하여 사용할 수도 있습니다.
설명을 개별적으로 나누어 보면 다음과 같습니다.
nullable 타입의 변수는 그 값이 null 인지 아닌지를 is/!is 연산자로 확인 후 사용해야 합니다.
예제
상위 타입으로 전달 받은 하위 타입의 객체를 실제 타입인 하위 타입으로 사용하려면 is 연산자로 실제 타입인지 확인하고 사용해야 합니다.
is 연산자로 실제 타입을 확인한 상위 타입의 변수는 실제 타입으로 선언된 변수로 간주하고 사용해도 됩니다.
예제
as, as?
as "Unsafe"
as는 사용 중 예외가 발생할 수 있어 "Unsafe cast operator"라고 합니다.
예제
위의 예제에서 만약 y가 String Type이 아니라면 예외가 발생합니다.
as? "Safe"
as?는 형 변환 실패 시 예외를 발생시키지 않고 null을 리턴합니다. 이 후 as? 의 결과값을 받은 변수를 null체크 후 사용하면 안전하므로 "Safe cast operaor"라고 합니다.
예제
위의 예제에서 만약 as?를 사용하지 않고 as 를 사용한다면 마찬가지로 y가 String 형이 아닐 때 예외가 발생합니다.
변수
var, val 두가지 속성의 변수를 선언할 수 있습니다.
var
변수(읽기/쓰기 가능) 선언
val
읽기 전용 값 선언
예제
문법
var, val 사용 방법은 동일합니다. 선언에 사용하는 타입(ex. Int, String 등 )이 달라도 사용 형식은 동일합니다.
var 변수이름:형 = 값
예제
상수
다른 언어와 다르게 최상위 레벨에서만 선언 가능합니다.
예제
'코틀린( Kotlin )' 카테고리의 다른 글
코틀린 1-6 기본 - operator(연산자) - null 안전 처리 연산자 (0) | 2020.04.02 |
---|---|
코틀린 1-5 기본 - 접근 제한자, 예외처리 (0) | 2020.04.01 |
코틀린 1-4 기본 - 제어문 (0) | 2020.04.01 |
코틀린 1-3 기본 - 함수 (0) | 2020.04.01 |
코틀린 1-1 기본 - 언어의 특징, 기본 형(Type) (0) | 2020.04.01 |