Ruby가 특정 연산자 오버로딩만 허용하는 이유
-
01-07-2019 - |
문제
다른 많은 OO 프로그래밍 언어와 마찬가지로 Ruby에서도 연산자는 오버로드 가능합니다.그러나 특정 문자 연산자만 오버로드될 수 있습니다.
이 목록은 불완전할 수 있지만 오버로드할 수 없는 일부 연산자는 다음과 같습니다.
!, not, &&, and, ||, or
해결책
메소드는 오버로드 가능하며 언어 구문의 일부입니다.
다른 팁
네.연산자는 오버로드될 수 없습니다.방법만.
일부 운영자는 실제로 그렇지 않습니다.그들은 방법의 설탕입니다.그래서 5 + 5
정말이야 5.+(5)
, 그리고 foo[bar] = baz
정말이야 foo.[]=(bar, baz)
.
루비 1.9에서는 !
연산자는 실제로 메서드이기도 하며 재정의될 수 있습니다.이것만 남는다 &&
그리고 ||
그리고 우선순위가 낮은 상대 and
그리고 or
.
재정의할 수 없는 다른 "결합 연산자"도 있습니다. a != b
실제로는 !(a == b)
그리고 a += b
실제로는 a = a+b
.
그리고 잊지 말자 <<
예를 들어:
string = "test"
string << "ing"
다음을 호출하는 것과 동일합니다.
string.<<("ing")
제휴하지 않습니다 StackOverflow