60
는 초보자 질문을 용서하지만 배열이 있다고 :인수의 배열이 주어지면 Ruby에서 이러한 인수를 특정 함수로 보내려면 어떻게해야합니까?
a = [1,2,3]
그리고 어딘가 기능을; 의이 인스턴스 기능입니다 가정 해 봅시다 :
class Ilike
def turtles(*args)
puts args.inspect
end
end
가 어떻게 a
와 Ilike.turtles
를 호출 할 내가 (Ilike.new).turtles(1,2,3)
를 호출하는 것처럼.
저는 send
에 익숙하지만, 배열을 인수 목록으로 변환하는 것으로 보이지 않습니다.
내가 찾고있는 병렬은 call
과 동일하지만 인수 목록으로 배열을 변환하는 자바 스크립트 apply
입니다.
환상적. 훌륭한 답변을 바탕으로 [Wikibooks] (http://en.wikibooks.org/wiki/Ruby_Programming/Syntax/Method_Calls#Variable_Length_Argument_List.2C_Asterisk_Operator)에서이 기술에 대한보다 자세한 설명을 발견했습니다. 병렬 표기법이 다른 방식으로 진행되면 실제로 이것은 사실 완벽하게 타당합니다. 아, 루비. 또한 나는''. 새우 (1,2,3, * a) '를 사용하여 어색한'a.unshift' 안타까움없이 자신의 주장을 덧붙일 수 있다는 것을 알아 냈다. 그러나 postpending은 그런 기동을 요구하는 것처럼 보인다. –
@StevenXu Ruby 1.9에서는 'postpending'을 표시 할 수 있습니다. 'a = [1,2]; b = [4,5]; "0 \ n1 \ n2 \ n3 \ n4 \ n5 \ n6" ' – Phrogz
환상적으로 대답했습니다! – RubyFanatic