자바 개발자를 위한 코틀린 입문 에 강의 내용을 정리한 내용이다.
코틀린에서 Type을 다루는 방법에 대해서 설명한다.
기본타입
Byte, Short, Int, Long, Float, Double 부호 없는 정수들
1 | val number1 = 3 // Int |
kotlin은 기본 타입간의 변환은 명시적(to변환타입())
으로 이루어 져야 한다.
1 | val number1 = 4 |
타입 캐스팅
is, as
java에서 instanceOf
를 is
로 사용하고, 타입 캐스팅은 as
를 사용한다.
1 | fun printAgeIfPerson(obj: Any) { |
!is
!is
를 붙여 타입 체크를 하면 반대의 오브젝트만 올수 있다.
1 | fun printAgeIfPerson(obj: Any) { |
as?
as?
를 이용해서 Object 앖이 null 인지를 체크 할 수 있다.
1 | fun main() { |
특이한 타입 3가지
Any
- JAVA의 Object 역할
- 모든 Primitive Type의 최상의 타입도 Any
- Any 자체로는 null을 포함할 수 없어 null 포함하고 싶다면, Any?로 표현
- Any에 equals / hashCode / toString 존재
Unit
- Unit은 Java의 void와 동일한 역할
- void와 다르게 Unit은 그 자체로 타입 인자로 사용 가능
- 함수형 프로그래밍에서 Unit은 단 하나의 인스턴스만 갖는 타입을 의미. 즉, 코틀린의 Unit은 실제 존재하는 타입이라는 것을 표현
Nothing
- Nothing은 함수가 정상적으로 끝나지 않았다는 사실을 표현하는 역할
- 무조건 예외를 반환하는 함수 / 무한 루프 함수 등
1 | fun fail(message: String): Nothing { |
String interpolation / String indexing
String interpolation
변수 이름만 사용하더라도 ${변수}를 사용
1 | val age = 77 |
String indexing
""""""
를 사용 하여 칸이동 등 자유롭게 문자사용 가능
1 | val str = """ |
kotlin에서 문자열의 특정 문자 가져오기
1 | val str = "ABC" |