본문 바로가기

Reading Record/이펙티브 코틀린

[이펙티브 코틀린] Item17. 이름 있는 아규먼트를 사용하라

이름있는 아규먼트 (named argument)
- 파라미터가 명확하지 않은 경우에는 이를 집적 지정해서 명확하게 만들어준다.

 

이름있는 아규먼트의 장점

  • 이름을 기반으로 값이 무엇을 나타내는지 알 수 있다
  • 파라미터 입력 순서와 상관이 없어 안전하다.
    성능에 영향을 줄 것 같으면, 인라인 클래스를 사용하라 : 그러나 파라미터 순서 잘못 입력하는 경우 생길 수 있다.

 

이름 있는 아규먼트를 사용해야하는 경우 3가지

1) 디폴트 아규먼트의 경우

함수 이름은 필수 파라미터들과 관련되어있어, 디폴트 값을 갖는 옵션 파라미터(optional parameter)의 설명이 명확하지 않다.

2) 같은 타입의 파라미터가 많은 경우

이름있는 아규먼트를 사용하지 않으면 잘못 입력했을 때  문제를 찾아내기 어려울 수 있다.

3) 함수 타입 파라미터가 있는 경우

함수타입이 여러개일 경우는 의미를 더 명확히 하기 위해 이를 사용하자.
주로 리액티브 라이브러리에서 자주 볼 수 있는 형태이다.

예외 ) 함수 타입 파라미터가 마지막 위치에 있을 경우

일반적으로 함수 타입 파라미터는 마지막 위치에 배치하는 것이 좋다.
함수 이름이 함수 타입 아규먼트를 설명해주기도 하기 때문이다. > 일반적으로 마지막에 위치하는 함수 파라미터에 대해서 설명한다.