2016-11-08 10 views
2

로 플랫을 사용합니다. 분명히 테스트를 실행하면 "hello"가 반환됩니다. 하지만 테스트에 인수를 전달하면 ...어떻게 * 나는에 대한 혼란 스러워요 내가 루비 방법</p> <pre><code>def test(*) puts "hello" end </code></pre> <p>찾고 있어요 루비 메서드 매개 변수

test("this argument") 

어떻게 테스트 메서드 내에서 해당 메서드를 호출 할 수 있습니까? 나는 이름없이 튄 자국에 대해서 혼란스러워하고있다. 어떻게 작동합니까?

+2

: http://stackoverflow.com/questions/5249537/naked- http://blog.honeybadger.io/ruby-splat-array-manipulation-destructuring/

가장 관련 부분을 인용하기를 매개 변수에서 별표 - 정의 - def-f – orde

+0

@ orde 고마워요. 그러나 내가 알고 싶은 것은 메서드에 전달되는 인수를 어떻게 호출 할 수 있는가입니다. 'def test (* args)'로 정의해야합니까? – jason328

+0

나는 솔직해질 것이다. 처음으로 나는 알몸의 스 플랫 연산자를 보았다. 하지만 - 만약 당신이'def foo (* args); args; end' - 메소드 인자는'args' 배열로 모아지고'foo (1,2) # => 1 2'를 할 수 있습니다. – orde

답변

0

이 포스팅은 상당히 자세한 낮은 수준의 설명이 있습니다이 도움이 될

def go(x, *args, y) 
    puts x # => 1 
    puts y # => 5 
    puts args.inspect # => [2,3,4] 
end 

go(1, 2, 3, 4, 5) 
+2

답변에 블로그 게시물 요약을 추가하십시오. 적어도 여기서 질문에 대답하는 부분을 설명하십시오. Link-only 해답은 외부 링크가 악화되고 빠르게 사라지기 때문에 Stack Overflow에서 눈살을 찌푸리게합니다. –

+0

고정 및 생산 중 – whodini9

+0

이 부분은 나에게 의미가 있습니다. 내가 혼란스러워하는 점은 args가 없으면 어떻게 될까요? 원하는 매개 변수를 얻기 위해 args를 메서드 매개 변수에 넣어야합니까? 나는 그렇게 생각한다. – jason328

관련 문제