2012-09-25 2 views
4

이 코드는 인수로 1, 23Array::[] 호출 :Ruby에서 [...]에 의해 호출되는 메소드는 무엇입니까?

Array[1, 2, 3] #=> [1, 2, 3] 

하지만이 Array::[]를 호출하지 않는 것 :

[1, 2, 3] #=> [1, 2, 3] 

그래서, 어떤 방법이 루비 [...]에 의해 호출?

동기 부여 : 테스트에서 메소드를 스텁하려고합니다.

+0

이것은 배열 리터럴에 대한 Ruby 구문입니다. 당신은 무엇을 할 수 있기를 기대합니까? –

+0

테스트에 스텁 – ted

답변

5

이것은 배열의 리터럴 구문입니다. 메시지를 보내는 것이 아닙니다. Ruby는 대다수의 다른 언어와 마찬가지로 리터럴의 오버로드를 허용하지 않습니다.

리터럴 오버로드가 필요한 경우 Ioke와 같이 언어를 지원하는 언어를 사용해야합니다.

관련 문제