를 호출하는 방법은 우리가 클래스루비 연산자와
class Foo
def + (element); end
def add (element); end
end
이제 우리는 같은이 두 메소드를 호출 할 수 있다고 가정한다. 이것은 메소드를 호출하는 올바른 방법입니다.
내 질문은 :
foo + 'bar'
아니라 : : 메소드 이름이 실제로 연산자 오버로딩 경우
foo add 'bar'
루비 구별합니까 우리가 뭔가를 할 수있는 이유는 무엇입니까? 어떻게 작동합니까?
나쁘지 않은 질문입니다. +1 –
루비는 연산자를 나타내는 문자열을 다른 문자열과 구별합니다. 따라서'def +'를하면 기존 연산자를 정의 (또는 오버로딩)한다는 것을 알 수 있습니다. 'add'는 이미 연산자가 아니기 때문에 일반적인 메소드로 취급됩니다. 다음과 같이 보석을 사용하여 사용자 정의 연산자를 정의 할 수 있습니다. http://stackoverflow.com/questions/11874579/define-custom-ruby-operator – lurker
mbratch, 질문을 수락하고 싶습니다! – squixy