Ruby의 명명된 매개변수
매개변수에 대해 이야기할 때 값을 할당할 수 있는 함수를 참조합니다. 이 값은 매개변수 대신 표시됩니다.
예를 들어 fruit
매개변수를 정의하고 "apple"
값을 매개변수에 할당하면 "apple"
이 표시됩니다.
Ruby의 매개변수 유형
주로 Ruby에 적용되는 두 가지 유형의 매개변수가 있습니다. 선택적 매개변수와 명명된 매개변수가 있습니다.
이 두 가지 매개변수의 적용 예제를 살펴보아 서로 다른 차이를 이해하겠지만 한 눈에 볼 수 있는 차이 중 하나는 선택적 매개변수는 =
기호로 정의되고 명명된 매개변수는 :
기호로 정의된다는 것입니다.
Ruby의 선택적 매개변수
선택적 매개변수는 매개변수 내에서 둘 이상의 값을 정의할 때만 값을 재할당할 수 있기 때문에 대부분 1차원적입니다.
아래 예를 살펴보고 Ruby 파일을 만들고 new.rb
라는 이름을 지정하고 다음 코드를 입력합니다.
def show_name_and_address(name="James", address="Madison")
puts "#{name}, #{address}"
end
show_name_and_address
결과에 "James, Madison"
이 표시됩니다. 이제 매개변수의 값을 변경해 보겠습니다.
다른 파일을 만들고 이름을 new2.rb
로 지정하고 다음 코드를 입력합니다.
def show_name_and_address(name="James", address="Madison")
puts "#{name}, #{address}"
end
show_name_and_address('Bond')
"Bond, Madison"
으로 표시되는 결과를 볼 수 있습니다. 값이 변경된 유일한 매개변수는 첫 번째 name
매개변수입니다. 그러나 address
매개변수의 값을 변경하려면 어떻게 해야 합니까?
새 파일을 만들고 이름을 new3.rb
로 지정하고 다음 스니펫을 입력합니다.
def show_name_and_address(name="James", address="Madison")
puts "#{name}, #{address}"
end
show_name_and_address(address='Bond')
이 코드를 실행하면 name
매개변수만 변경되는 것을 볼 수 있습니다.
address
매개변수는 변경할 수 없습니다. 선택적 매개변수에 비해 명명된 매개변수가 더 잘 작동하는 곳입니다.
Ruby의 명명된 매개변수
선택적 매개변수와 달리 명명된 매개변수는 함수에 값을 추가할 때 훨씬 더 유연한 접근 방식을 제공합니다. 이를 통해 name
및 address
매개변수에 할당하는 값을 변경할 수 있습니다.
이를 실제로 확인하기 위해 아래 예를 살펴보겠습니다.
새 파일을 만들고 이름을 new.rb
로 지정하고 다음 코드를 추가합니다.
def show_name_and_address(name: "James", address: "Madison")
puts "#{name}, #{address}"
end
show_name_and_address(name: 'Bond')
name
변수에 할당된 값이 "Bond"
로 변경되는 것을 볼 수 있습니다. 그러나 이것은 괜찮습니다. 선택적 매개변수로 수행할 수 있는 작업입니다.
이제 address
변수에 값을 할당하는 방법을 살펴보겠습니다.
새 파일을 만들고 이름을 new2.rb
로 지정하고 다음 코드를 입력합니다.
def show_name_and_address(name: "James", address: "Madison")
puts "#{name}, #{address}"
end
show_name_and_address(address: 'Bond')
address
매개변수에 할당된 값이 Bond
로 변경되는 것을 볼 수 있습니다.
명명된 매개변수가 선택적 매개변수로 수행한 첫 번째 예와 동일한 결과를 표시하려면 =
기호를 :
로 변경합니다.
결론
명명된 매개변수는 둘 이상의 매개변수 값을 변경해야 할 때 선택적 매개변수보다 더 잘 작동합니다. 두 방법 중 하나를 적용하는 것은 우리가 달성하고자 하는 것에 달려 있습니다.
Fisayo is a tech expert and enthusiast who loves to solve problems, seek new challenges and aim to spread the knowledge of what she has learned across the globe.
LinkedIn