본문은 Effective Kotlin을 읽고 간단하게 정리한 글입니다. 필요에 따라 생략/수정된 부분이 있을 수 있으며, 내용이 추후 변경될 수 있습니다.
1. 코틀린의 타입추론
코틀린의 타입추론은 매우 간편하지만, 이를 제대로 사용하기 위해서는 먼저 타입추론의 특성을 충분히 인지해야 한다. inferred 타입은 정확하게 오른쪽에 있는 피연산자에 맞게 설정된다. 즉, 슈퍼클래스나 인터페이스로는 설정되지 않는다.
open class Animal
class Zebra: Animal()
fun main() {
var animal = Zebra() // animal은 Zebra 타입으로 추론된다.
animal = Animal() // 오류: Type mismatch
}
타입을 명시적으로 지정하면 이 문제를 해결할 수 있다.
open class Animal
class Zebra: Animal()
fun main() {
var animal: Animal = Zebra()
animal = Animal()
}
리턴 타입은 API를 잘 모르는 사람에게 전달해줄 수 있는 중요한 정보이므로 외부에서 확인할 수 있도록 명시적으로 지정해주는 것이 좋다.
2. 정리
- 타입을 확실하게 지정해야 하는 경우(=다형성 이용 시)에는 명시적으로 타입을 지정해야 한다
- 다른 사람들이 사용할 수 있는 외부 API를 만들 때는 반드시 타입을 지정하고, 지정한 타입을 특별한 이유와 확실한 확인 없이는 제거하면 안 된다
'책 > Effective Kotlin' 카테고리의 다른 글
[이펙티브 코틀린] 아이템7: 결과 부족이 발생할 경우 null과 Failure를 사용하라 (0) | 2023.07.04 |
---|---|
[이펙티브 코틀린] 아이템5: 예외를 활용해 코드에 제한을 걸어라 (0) | 2023.07.03 |
[이펙티브 코틀린] 아이템3: 최대한 플랫폼 타입을 사용하지 말라 (0) | 2023.07.01 |
[이펙티브 코틀린] 아이템2: 변수의 스코프를 최소화하라 (0) | 2023.06.30 |
[이펙티브 코틀린] 아이템1: 가변성을 제한하라 (0) | 2023.06.28 |
본문은 Effective Kotlin을 읽고 간단하게 정리한 글입니다. 필요에 따라 생략/수정된 부분이 있을 수 있으며, 내용이 추후 변경될 수 있습니다.
1. 코틀린의 타입추론
코틀린의 타입추론은 매우 간편하지만, 이를 제대로 사용하기 위해서는 먼저 타입추론의 특성을 충분히 인지해야 한다. inferred 타입은 정확하게 오른쪽에 있는 피연산자에 맞게 설정된다. 즉, 슈퍼클래스나 인터페이스로는 설정되지 않는다.
open class Animal
class Zebra: Animal()
fun main() {
var animal = Zebra() // animal은 Zebra 타입으로 추론된다.
animal = Animal() // 오류: Type mismatch
}
타입을 명시적으로 지정하면 이 문제를 해결할 수 있다.
open class Animal
class Zebra: Animal()
fun main() {
var animal: Animal = Zebra()
animal = Animal()
}
리턴 타입은 API를 잘 모르는 사람에게 전달해줄 수 있는 중요한 정보이므로 외부에서 확인할 수 있도록 명시적으로 지정해주는 것이 좋다.
2. 정리
- 타입을 확실하게 지정해야 하는 경우(=다형성 이용 시)에는 명시적으로 타입을 지정해야 한다
- 다른 사람들이 사용할 수 있는 외부 API를 만들 때는 반드시 타입을 지정하고, 지정한 타입을 특별한 이유와 확실한 확인 없이는 제거하면 안 된다
'책 > Effective Kotlin' 카테고리의 다른 글
[이펙티브 코틀린] 아이템7: 결과 부족이 발생할 경우 null과 Failure를 사용하라 (0) | 2023.07.04 |
---|---|
[이펙티브 코틀린] 아이템5: 예외를 활용해 코드에 제한을 걸어라 (0) | 2023.07.03 |
[이펙티브 코틀린] 아이템3: 최대한 플랫폼 타입을 사용하지 말라 (0) | 2023.07.01 |
[이펙티브 코틀린] 아이템2: 변수의 스코프를 최소화하라 (0) | 2023.06.30 |
[이펙티브 코틀린] 아이템1: 가변성을 제한하라 (0) | 2023.06.28 |