Skip to content

Latest commit

 

History

History
19 lines (19 loc) · 755 Bytes

타입 파라미터의 섀도잉을 피하자.md

File metadata and controls

19 lines (19 loc) · 755 Bytes

타입 파라미터의 섀도잉을 피하자

섀도잉(Shadowing)이란?

파라미터가 프로퍼티 또는 상위 파라미터와 같은 이름을 가지는 것

  • 코드 이해를 어렵게 만듦

파라미터와 프로퍼티 간의 섀도잉

class Forest(val name: String) {
    fun addTree(name: String) { ... }
}

클래스 타입 파라미터와 함수 타입 파라미터 간의 섀도잉

class Forest<T: Tree> {
    fun <T: Tree> addTree(tree: T) { ... }
}
  • 클래스와 함수의 타입 파라미터가 독립적으로 동작
    • 동일한 타입이라면 함수가 클래스 타입 파라미터를 사용하는 것이 적합
    • 독립적이라면 타입 파라미터를 다르게 네이밍하는 것이 적합