2009-08-28 4 views
6

루비에서는 매개 변수를 메서드에 전달하는 대신 매개 변수의 해시를받는 메서드를 보는 것이 일반적입니다.해시 대 여러 개의 매개 변수?

내 질문은 - 언제 당신의 방법에 대한 매개 변수를 사용합니까 당신은 언제 매개 변수 해시를 사용합니까?

메서드에 둘 이상의 매개 변수가있는 경우 매개 변수 해시를 사용하는 것이 좋습니다.

답변

0

자식 클래스의 메서드를 재정의하는 경우에는 부모 메서드 매개 변수를 호출 할 때 해시 매개 변수를 사용해야합니다.

4

의미 론적으로 함께 속하는 옵션 세트를 나타낼 때마다 매개 변수 해시를 사용합니다. 함수에 대한 직접적인 (종종 요구되는) 인자 인 다른 인자들, 나는 하나씩 전달한다.

+1

+1 - 매개 변수 해시가 필요하지 않습니다. 선택적 매개 변수는 기본값으로 이름을 지정할 수 있지만 해시로 전달하고 필요한 경우 메서드 본문에 기본값을 설정하는 경향이 있습니다. –

1

많은 옵션 매개 변수가있는 경우 나 여러 매개 변수의 방법에서 볼 수있는 것처럼 임의 매개 변수를 허용하려는 경우 해시를 사용할 수 있습니다.

0
다른 주에

, 이것은 단지 루비하지만, 모든 언어 관련이 없습니다 : 플럭스에있는 API를에서

, 하나의 매개 변수 개체로 함수에 일부 또는 모든 매개 변수를 선언하는 것이 유용하다 (Ruby에서는 해시, C 구조체 등) API 안정성을 유지하기 위해 인수 인수가 이후 버전에서 변경되어야합니다. 그러나 명백한 단점은 가독성이 급격히 감소한다는 것입니다. 실제로해야 할 일이 없으면 결코이 "패턴"을 사용하지 않을 것입니다.

1

3 개 이상의 인수가있는 경우 해시 사용을 고려해야합니다. 이것은 깨끗한 코드에서 명확하게 설명 된 우수 사례입니다. link text

관련 문제