책/Effective Kotlin

[이펙티브 코틀린] 아이템4: inferred 타입으로 리턴하지 말자

2023. 7. 2. 09:40
목차
  1. 1. 코틀린의 타입추론
  2. 2. 정리
본문은 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
  1. 1. 코틀린의 타입추론
  2. 2. 정리
'책/Effective Kotlin' 카테고리의 다른 글
  • [이펙티브 코틀린] 아이템7: 결과 부족이 발생할 경우 null과 Failure를 사용하라
  • [이펙티브 코틀린] 아이템5: 예외를 활용해 코드에 제한을 걸어라
  • [이펙티브 코틀린] 아이템3: 최대한 플랫폼 타입을 사용하지 말라
  • [이펙티브 코틀린] 아이템2: 변수의 스코프를 최소화하라
코택
코택
TaxFree코택 님의 블로그입니다.
코택
TaxFree
코택
전체
오늘
어제
  • 분류 전체보기 (369)
    • Spring (29)
      • Spring (18)
      • 스프링 핵심 원리 - 고급편 (11)
    • Spring Batch (4)
    • JPA (4)
    • CS (89)
      • 자료구조 (2)
      • 네트워크 (5)
      • 운영체제 (1)
      • 데이터베이스 (4)
      • SQL (7)
      • 알고리즘 이론 (4)
      • 알고리즘 문제 풀이 (66)
    • 웹 (28)
      • React.js (4)
      • Next.js (1)
      • Node.js (14)
      • FastAPI (4)
      • Django (5)
    • 프로그래밍 언어 (45)
      • Python (5)
      • Java + Kotlin (29)
      • JavaScript + TypeScript (11)
    • 테스트코드 (26)
      • ATDD, 클린 코드 with Spring (4)
      • 이규원의 현실 세상의 TDD: 안정감을 주는 코드.. (20)
    • 인프라 (6)
      • AWS (2)
      • Kubernetes (4)
    • 트러블슈팅 (25)
    • 책 (89)
      • Effective Java (54)
      • Effective Kotlin (14)
      • 도메인 주도 개발 시작하기: DDD 핵심 개념 정.. (11)
      • 웹 프로그래머를 위한 데이터베이스를 지탱하는 기술 (6)
      • 도메인 주도 설계 첫걸음 (4)
    • Git (10)
    • 회고 (5)
    • etc (8)

블로그 메뉴

  • 홈
  • 방명록
  • 관리
  • GitHub
  • LinkedIn

공지사항

  • 스킨 관련

인기 글

태그

  • 브루트포스
  • Git
  • Shortest Path
  • 파이썬
  • 백준
  • http
  • 장고
  • atdd
  • mysql
  • dp
  • 그래프
  • 그래프 탐색
  • fastapi
  • BOJ
  • 깊이 우선 탐색

최근 댓글

최근 글

hELLO · Designed By 정상우.
코택
[이펙티브 코틀린] 아이템4: inferred 타입으로 리턴하지 말자
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.