매개변수와 인수의 차이점은 무엇입니까?

부끄러운 고백이 있습니다.

최근까지 저는 팀의 다른 소프트웨어 개발자와 대화하고 페어링할 때 매개변수와 인수를 상호 교환적으로 사용했습니다.

매개변수와 인수는 같은 것이 아니지만 유사합니다.

저와 같은 부끄러운 실수를 하지 않도록 차이점을 파헤쳐 보겠습니다.


매개변수 대 인수



매개변수는 함수 정의에 정의된 변수입니다. 함수가 호출될 때 전달할 것으로 기대하는 변수입니다. 이 매개변수는 함수의 나머지 부분에서도 사용할 수 있는 변수를 정의합니다.

인수는 함수를 호출할 때 함수에 전달하는 값입니다. 인수는 함수에서 매개변수 변수의 값을 결정합니다.

여전히 비슷하게 들릴 수 있으므로 여기에 코드가 포함된 예가 있습니다.

def adder(x, y)
  x + y
end

adder 함수는 xy 2개의 매개변수를 사용합니다.

그런 다음 adder 함수를 호출하고 2개의 인수를 전달할 수 있습니다.

>>> adder(2, 3)
5


인수 23를 전달했으므로 함수의 본문이 실행되고 매개변수를 우리가 제공한 인수로 대체합니다.


키워드 인수 작동 방식



Ruby를 포함한 많은 프로그래밍 언어를 사용하면 특정 키워드로 매개변수의 이름을 지정할 수 있습니다.

이것은 여러 가지 이유로 유용합니다.

함수를 호출하고 인수를 전달할 때 함수는 인수의 순서에 따라 달라집니다.

예를 들어 함수가 대신 빼기 또는 나누기와 같은 작업을 수행하는 경우 인수의 순서가 중요합니다.

예를 들어 인수divider(0,1)를 사용하여 아래 함수를 호출하면 결과는 0이 되지만 순서를 바꾸면 함수에서 예외가 발생합니다. (안타깝게도 0으로 나눌 수 없습니다...)

def divider(x, y)
  x / y.to_f
end


키워드 인수를 사용하면 어떤 매개변수가 어떤 매개변수인지 더 명확하게 지정할 수 있으며 함수를 호출하고 인수를 전달할 때 순서는 더 이상 키워드 인수에 중요하지 않습니다.

방법을 다음과 같이 변경하면:

def divider(numerator:, denominator:)
  numerator / denominator.to_f
end


그런 다음 이 메서드를 호출하려면 키워드를 포함해야 합니다.

>>> divider(numerator: 0, denominator: 1)
0


매개변수에 이름이 지정되어 있기 때문에 예외를 발생시키지 않고 순서를 바꿀 수도 있습니다.

>>> divider(denominator: 1, numerator: 0)
0



테이크아웃



나는 대부분의 팀이 매개변수와 인수의 차이를 모른다고 장담합니다.

미묘한 차이가 있지만 몇 가지 예를 보면 이해하기 쉽습니다.

매개변수는 함수가 취할 내용을 알려주고 인수는 함수를 호출할 때 함수에 전달하는 값입니다.

매개변수는 변수 이름과 같으며 인수는 값이 무엇인지 알려줍니다.

매개변수와 인수의 순서가 중요합니다. 그러나 키워드 인수를 사용하여 순서를 불필요하게 만들고 함수를 호출할 때 인수의 이름을 보다 명확하게 지정할 수 있습니다.

좋은 웹페이지 즐겨찾기