더북(TheBook)

 

icon_sec

32
오버로딩

디폴트 인자를 지원하지 않는 언어에서는 종종 디폴트 인자를 흉내 내기 위해 오버로딩을 활용한다.

overload(‘짐을 너무 많이 싣거나 무언가를 너무 많이 준다’는 뜻의 동사)라는 영어 단어는 함수의 이름을 대상으로 한다. 파라미터 목록이 여러 다른 함수에 같은 이름을 사용(이름을 ‘너무 많이 줌’)하는 게 오버로딩이다. 다음 예제는 f() 멤버 함수를 오버로딩한다.

Overloading/Overloading.kt

package overloading
import atomictest.eq

class Overloading {
  fun f() = 0
  fun f(n: Int) = n + 2
}

fun main() {
  val o = Overloading()
  o.f() eq 0
  o.f(11) eq 13
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.