- RubyLanguage
- RubyLanguage/Class
- RubyLanguage/Container
- RubyLanguage/ExceptionHandling
- RubyLanguage/InputOutput
1. 연산자 ¶
- 우선순위가 높은 것이 위
- 아래에 있는 연산자는 method 로 정의되어 있으며 재정의가 가능하다.
| 연산자 | 설명 |
| [] []= | 요소 참조, 요소 설정 |
| ** | 누승 (2**3 = 8) |
| ! ~ + - | 단항연산자 (bit NOT, unary plus, unary minus) |
| * / & | 곱셈, 나눗셈, 나머지 |
| >> << | shift |
| & | bit AND |
| ^ | | bit XOR, bit OR |
| <= < > >= | 비교 연산자 |
| <=> == === != | 동등 비교 |
- method 로 정의되지 않은 연산자
| =~ !~ | 패턴 매칭 |
| && | 논리곱 |
| || | 논리합 |
| .. ... | 범위 |
| ? : | 삼항 연산자 |
| = %= ~= /= -= += |= &= >>= <<= *= &&= ||= **= | 대입 연산자 |
| defined | 심벌이 정의되었는지 검사 |
| Not | 역논리 |
| or and | 논리 구성 |
| if unless while until | 표현식 제한자 |
| begin end | 블록 표현식 |
- '++' '--" 연산자는 존재하지 않음
3. 대입문 ¶
- 한꺼번에 변수 여러개 대입하기
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)










