자바 개발자를 위한 코틀린 입문
3강. 코틀린에서 Type을 다루는 방법
자바에서는 기본 타입간의 변환은 암시적으로 이루어질 수 있다.
코틀린에서는 기본 타입간의 변환은 명시적으로 이루어져야 한다.
변수가 nullable이라면 적절한 처리가 필요하다.
instanceof
: 변수가 주어진 타입이면 true, 그렇지 않으면 false를 반환한다.(타입)
: 주어진 변수를 해당 타입으로 변경한다.is
: 자바의 instanceof
와 같은 역할. 변수가 주어진 타입이면 true, 그렇지 않으면 false를 반환한다.as
: 주어진 변수를 해당 타입으로 변경한다.as Person
을 생략하여도 Person
타입으로 인식한다. (Java에서는 명시적 형변환 필수)
if
에서 타입 체크를 했으니 해당 변수는 이 타입으로 간주될 수 있겠구나를 인지하여 처리한다.!is
: instanceof
와 is
의 반대. 변수가 주어진 타입이면 false, 그렇지 않으면 true를 반환한다.as
에 null이 들어온다면 as
에 Safe Call을 붙혀줘야 한다.
as?
: 객체가 null이 아니라면 타입을 변환하고 아니라면 null을 반환한다.Any
이다.Any
자체로는 null을 포함할 수 없어 null을 포함하고 싶다면, Any?
로 표현한다.Any
에 equals
/ hashCode
/ toString
가 존재한다.Unit
은 Java의 void
와 동일한 역할.void
와 다르게 Unit
은 그 자체로 타입 인자로 사용 가능하다. (void
는 void 제네릭을 쓰려면 Void
를 가져와야 하지만 Unit
은 그대로 사용 가능하다.)Unit
은 단 하나의 인스턴스만 갖는 타입을 의미한다. 즉, 코틀린의 Unit
은 실제 존재하는 타입이라는 것을 표현한다.Nothing
은 함수가 정상적으로 끝나지 않았다는 사실을 표현하는 역할이다.${변수}
를 사용하면 값이 들어가진다.
$변수
를 사용할 수도 있다.
💡 Tip
변수 이름만 사용하더라도
${변수}
를 사용하는 것이
1) 가독성
2) 일괄 변환
3) 정규식 활용
측면에서 좋다.
"""
을 치고 엔터를 누르면 앞에 탭 공간(indent)를 제거해주는 trimIndent()
함수가 생긴다.
자유롭게 문자열 작성이 가능하다.
문자열에서 특정 문자를 가져올 때는 자바의 배열처럼 대괄호([])안에 원하는 위치의 인덱스를 넣어주면 된다.
📑 출처
- 자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide) (인프런/최태현)