2013-05-17 4 views
7

찾을 수있는 모든 문서에서 Ruby 2.0까지 키워드 인수가 도입되지 않았다는 것을 알 수 있습니다. http://www.ruby-doc.org/core-1.9.3/Array.html#method-i-shuffleruby ​​1.9.3에 키워드 인수가 있습니까?

이 키워드 인수 : 그것은 '랜덤'이라는 키워드 인수를 취하는처럼

그러나 배열 # 셔플 보인다? 그렇지 않다면 무엇입니까? 루비 1.9.3에서 다른 키워드 사용법은 무엇입니까?

+1

http://brainspec.com/blog/2012/10/08/keyword-arguments-ruby-2-0/ 여기에서 진행되는 사항에 대한 몇 가지 예가 있습니다. – Puhlze

답변

5

Ruby 1.9.3에는 명명 된 매개 변수가 없지만 해시를 위해 추가 설탕이 추가되었습니다. 따라서 {:key => 'val'}{key: 'val'}과 같습니다. 거기에는 매개 변수로 전달되는 해시가 있습니다. 당신은 당신이 가리키는 방법의 소스를 보면

,이 표시됩니다

:
rb_ary_shuffle(int argc, VALUE *argv, VALUE ary) 
{ 
    ary = rb_ary_dup(ary); 
    rb_ary_shuffle_bang(argc, argv, ary); 
    return ary; 
} 

shuffle! 방법, 당신이 그것을 확인할 수

이 부분을보고 해시입니다
if (OPTHASH_GIVEN_P(opts)) { 
     randgen = rb_hash_lookup2(opts, sym_random, randgen); 
    } 
4

아니요, 아닙니다. 그것은 해시입니다. 전제 조건 실패로 인해 마지막 질문이 정의되지 않았습니다.

관련 문제