[Kotlin] 코틀린에서 Type을 다루는 방법

말하는 감자·2025년 5월 17일
0
post-thumbnail

자바 개발자를 위한 코틀린 입문

3강. 코틀린에서 Type을 다루는 방법

📌 기본 타입

  • Byte, Short, Int, Long, Float, Double, 부호 없는 정수들
    코틀린에서는 선언된 기본값을 보고 타입을 추론한다.

자바에서는 기본 타입간의 변환은 암시적으로 이루어질 수 있다.
코틀린에서는 기본 타입간의 변환은 명시적으로 이루어져야 한다.

변수가 nullable이라면 적절한 처리가 필요하다.

📌 타입 캐스팅

📍 JAVA

  • instanceof : 변수가 주어진 타입이면 true, 그렇지 않으면 false를 반환한다.
  • (타입) : 주어진 변수를 해당 타입으로 변경한다.

📍 Kotlin

  • is: 자바의 instanceof와 같은 역할. 변수가 주어진 타입이면 true, 그렇지 않으면 false를 반환한다.
  • as: 주어진 변수를 해당 타입으로 변경한다.

as Person을 생략하여도 Person타입으로 인식한다. (Java에서는 명시적 형변환 필수)

  • 스마트 캐스트 : 코틀린 컴파일러가 컨텍스트를 분석한 후 if 에서 타입 체크를 했으니 해당 변수는 이 타입으로 간주될 수 있겠구나를 인지하여 처리한다.

  • !is : instanceofis의 반대. 변수가 주어진 타입이면 false, 그렇지 않으면 true를 반환한다.

as에 null이 들어온다면 as에 Safe Call을 붙혀줘야 한다.

  • as? : 객체가 null이 아니라면 타입을 변환하고 아니라면 null을 반환한다.

📍 Kotlin의 특이한 타입 3가지

Any

  • Java의 Object 역할. (모든 객체의 최상위 타입)
  • 모든 Primitive Type의 최상의 타입도 Any이다.
  • Any 자체로는 null을 포함할 수 없어 null을 포함하고 싶다면, Any?로 표현한다.
  • Anyequals / hashCode / toString 가 존재한다.

Unit

  • Unit은 Java의 void와 동일한 역할.
  • void와 다르게 Unit은 그 자체로 타입 인자로 사용 가능하다. (void는 void 제네릭을 쓰려면 Void를 가져와야 하지만 Unit은 그대로 사용 가능하다.)
  • 함수형 프로그래밍에서 Unit은 단 하나의 인스턴스만 갖는 타입을 의미한다. 즉, 코틀린의
  • Unit은 실제 존재하는 타입이라는 것을 표현한다.

Nothing

  • Nothing은 함수가 정상적으로 끝나지 않았다는 사실을 표현하는 역할이다.
  • 무조건 예외를 반환하는 함수 / 무한 루프 함수 등

📌 String interpolation / String indexing

  • ${변수}를 사용하면 값이 들어가진다.

  • $변수를 사용할 수도 있다.

💡 Tip

변수 이름만 사용하더라도 ${변수}를 사용하는 것이
1) 가독성
2) 일괄 변환
3) 정규식 활용

측면에서 좋다.


"""을 치고 엔터를 누르면 앞에 탭 공간(indent)를 제거해주는 trimIndent() 함수가 생긴다.
자유롭게 문자열 작성이 가능하다.

문자열에서 특정 문자를 가져올 때는 자바의 배열처럼 대괄호([])안에 원하는 위치의 인덱스를 넣어주면 된다.


📑 출처

  • 자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide) (인프런/최태현)
profile
나는 말하는 감자다

0개의 댓글