2016-08-16 5 views
0

선택적 인수를 전달할 메서드가 있습니다. 기본적으로이 인수를 nil로 설정하려고합니다. 내가하는 방법은 다음과 같습니다.루비의 선택적 인수/param

def my_function(arg1, arg2: nil) 
    # Do something 
end 

이 함수는 my_function(2, 5)이라고합니다. "잘못된 인수 개수 (주어진 2, 예상 1)"

내가 여기서 뭔가 잘못하고 있습니까? 일부 호출 중에 arg2 값을 전달하고 그렇지 않으면 nil이되기를 원합니다. 그래서 arg2 값을 전달하지 않으면 함수 호출은 my_function(2)처럼 보입니다.

+2

'my_function (2, arg2 : 5)' –

답변

2

당신은 (의 위치 인수 대) 디폴트의 키워드 인수를 정의하고

def my_function(arg1, arg2 = nil) 
+1

너무 빠름을 사용할 수도 있습니다 ... –

1

을보십시오. my_function(2)으로 정의한 함수를 my_function(2, arg2: 5)과 같이 호출 할 수 있습니다. 위치 인수를 사용하려면 다음과 같이 정의 할 수 있습니다. def my_function(arg1, arg2 = nil)

다음은 키워드 인수에 대한 세부 사항입니다. https://robots.thoughtbot.com/ruby-2-keyword-arguments