RubyLanguage/Expression (rev. 1.1)
연산자 ¶
- 우선순위가 높은 것이 위
- 아래에 있는 연산자는 method 로 정의되어 있으며 재정의가 가능하다.
연산자 | 설명 |
[] []= | 요소 참조, 요소 설정 |
** | 누승 (2**3 = 8) |
! ~ + - | 단항연산자 (bit NOT, unary plus, unary minus) |
* / & | 곱셈, 나눗셈, 나머지 |
>> << | shift |
& | bit AND |
^ | | bit XOR, bit OR |
<= < > >= | 비교 연산자 |
<=> == === != | 동등 비교 |
=~ !~ | 패턴 매칭 |
&& | 논리곱 |
|| | 논리합 |
.. ... | 범위 |
? : | 삼항 연산자 |
= %= ~= /= -= += |= &= >>= <<= *= &&= ||= **= | 대입 연산자 |
defined | 심벌이 정의되었는지 검사 |
Not | 역논리 |
or and | 논리 구성 |
if unless while until | 표현식 제한자 |
연산자 재정의 ===
* 숫자 '+' 연산자를 곱셈 기능을 하는 것으로 바꿔버리기
class Fixnum
def +(other)
return self * other
end
end
=== 대입문 ===
* 한꺼번에 변수 여러개 대입하기
a, b = 1, 2
# a -> 1, b -> 2
* swap 구현
a, b = b, a
* 좌변값과 우변값 개수가 다른 경우
* 좌변값이 하나라면, 그 값은 우변값이 모두 들어간 배열이 된다.
* 좌변값이 둘 이상이라면, 우변값과 대응되지 못한 좌변값은 nil(없는 값)이 된다.
* 좌변값의 맨 마지막 변수 앞에 *을 붙이면 남은 우변값이 배열로 들어간다.
a, b = 1, 2, 3
# a -> 1, b -> 2
a, b, c = 1, 2
# a -> 1, b -> 2, c -> nil
a = 1, 2, 3
# a -> [1, 2, 3] (array)
a, *b = 1, 2, 3
# a -> 1, b -> [2, 3] (array)
=== 조건문 ===
=== 반복문 ¶