
자바 개발자를 위한 코틀린 입문
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) (인프런/최태현)