U E D R , A S I H C RSS

RubyLanguage/Expression (rev. 1.9)

Ruby Language/Expression


1. 연산자

1.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 블록 표현식
  • '++' '--" 연산자는 존재하지 않음

1.2. 연산자 재정의

  • 숫자 '+' 연산자를 곱셈 기능을 하는 것으로 바꿔버리기

class Fixnum
  def +(other)
    return self * other
  end
end

2. 대입문

  • 한꺼번에 변수 여러개 대입하기

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)


3. 조건문

3.1. 조건 연산자

  • and (=> &&), or (=> ||), not (!)
    • 기호로 쓰인 것(&&, ||, !)이 단어로 쓰인 것(and, or, not)보다 우선순위가 높음
  • defined? 연산자: 매개변수가 정의된 경우 그에 대한 설명을 문자열로 반환하고, 정의되지 않은 경우 nil을 반환

defined? 1
 -> "expression"
defined? dummy
 -> nil
defined? printf
 -> "method"
defined? $_
 -> "global variable"
defined? a = 1
 -> "assignment"

3.2. 비교 연산자

  • ==: 두 값이 같은지 비교
  • ===: case 항목의 when이 비교할 대상과 동일한지

4. 반복문

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:27:56
Processing time 0.0255 sec