새소식

반응형
250x250
My Study/Kotlin

Study About Kotlin 2

  • -
728x90
반응형

Kotlin에서의 타입

 

Kotlin에서는 선언된 기본값을 보고 타입을 추론한다.

val number1 = 1		// Int
val number2 = 1L	// Long
val number3 = 1.0f	// Float
val number4 = 1.0	// Double

 

Kotlin에서의 타입 변환

 

Java에서는 더 작은 Byte를 가진 타입에서 더 큰 Byte를 가진 타입으로 변환할 때에는 

명시적으로 작성하지 않아도 변환에 문제가 생기지 않았다.

 

하지만 Kotlin에서는 기본 타입간 변환은 명시적으로 이루어져야만 한다.

 

val number1 = 4
val number2: Long = number1		// Type mismatch (Error)

val number2: Long = number1.toLong()	// 변환 처리를 해줘야 한다.

// 변수에 null이 가능하면 nullable 처리를 해줘야 한다.

val number1 : Int? = 3
val number2: Long = number1?.toLong() ?: 0L (null 처리 확실하게 해줘야한다.)

 

Kotlin에서의 타입 확인

 

Java에서 타입을 확인할 때에는 instanceOf를 사용하여 타입을 확인하였다.

또한 다운캐스팅을 할 때에는 (String) 형식으로 했어야했다.

 

하지만 Kotlin에서는 간단하게 is 를 사용하면 된다.

또한 다운캐스팅 시에는 as를 사용하면 된다.

 

/*
	만약 Person이라는 객체가 있다고 하면
    아래와 같이 타입을 확인하고 다운캐스팅이 가능하다.
*/

if(obj is Person) {
	val person = obj as Person	// as Person 생략 가능하다.
    println(person.name)
}

 

Kotlin에서만 존재하는 특이한 타입 세 가지

 

Any : Java의 Object 역할. Any 자체로는 null을 포함할 수 없어 null 처리를 위해서는 Any?로 표현해줘야 한다.

Any에 equals, hashCode, toString이 존재한다.

 

Unit : Java의 void와 동일. void와는 다르게 Unit은 그 자체로 타입 인자로 사용 가능하다. 

함수형 프로그래밍에서 Unit은 단 하나의 인스턴스만 갖는 타입을 의미. 

즉, Kotlin의 Unit은 실제 존재하는 타입이라는 것을 표현

 

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

 

 

Kotlin에서는 아래와 같이 사용 가능하다.

val person = Person(name: "홍길동", age: 29)

val log = "이 사람의 이름은 ${person.name}이고 나이는 ${person.age}세 입니다."

 

또한 Kotlin에서 비교 연산자를 사용할 때 객체도 비교가 가능한데

비교 연산자가 자동으로 compareTo 메소드를 호출하기 때문이다.

 

동등성을 판단할 때에는 '==', 동일성을 판단할 때에는 '===' 을 사용한다.

728x90
반응형

'My Study > Kotlin' 카테고리의 다른 글

Study About Kotlin 6  (0) 2024.03.09
Study About Kotlin 5  (0) 2024.02.28
Study About Kotlin 4  (1) 2024.02.28
Study About Kotlin 3  (0) 2024.02.28
Study About Kotlin 1  (0) 2024.02.21
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.