Ruby Language
Splat 연산자 (*)
수색…
배열을 매개 변수 목록으로 강제 변환
배열이 있다고 가정합니다.
pair = ['Jack','Jill']
그리고 두 가지 주장을하는 방법 :
def print_pair (a, b)
puts "#{a} and #{b} are a good couple!"
end
배열을 전달할 수 있다고 생각할 수도 있습니다.
print_pair(pair) # wrong number of arguments (1 for 2) (ArgumentError)
배열은 두 개가 아닌 하나의 인수이므로 Ruby는 예외를 throw합니다. 개별 요소를 개별적으로 추출 할 수 있습니다.
print_pair(pair[0], pair[1])
또는 splat 연산자를 사용하여 약간의 노력을 덜 수 있습니다.
print_pair(*pair)
변수의 개수
splat 연산자는 배열의 개별 요소를 제거하고이를 목록으로 만듭니다. 이는 가변 인수를 허용하는 메소드를 작성하는 데 가장 일반적으로 사용됩니다.
# First parameter is the subject and the following parameters are their spouses
def print_spouses(person, *spouses)
spouses.each do |spouse|
puts "#{person} married #{spouse}."
end
end
print_spouses('Elizabeth', 'Conrad', 'Michael', 'Mike', 'Eddie', 'Richard', 'John', 'Larry')
배열은 목록의 하나의 항목으로 계산되므로 배열을 전달하려는 경우 호출 측의 splat 연산자도 필요합니다.
bonaparte = ['Napoleon','Joséphine','Marie Louise']
print_spouses(*bonaparte)
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow