Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

RubyLanguage/Expression: Difference between revisions

From ZeroWiki
imported>공간도형
No edit summary
imported>공간도형
No edit summary
Line 107: Line 107:
  # a -> 1, b -> [2, 3] (array)
  # a -> 1, b -> [2, 3] (array)


= 조건문 =
 
= 조건문 =
= 조건문 =
== 조건 연산자 ==
== 조건 연산자 ==

Revision as of 09:34, 24 January 2011

[[pagelist(^RubyLanguage)]]

연산자

연산자 우선순위

  • 우선순위가 높은 것이 위
  • 아래에 있는 연산자는 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 블록 표현식
  • '++' '--" 연산자는 존재하지 않음

연산자 재정의

  • 숫자 '+' 연산자를 곱셈 기능을 하는 것으로 바꿔버리기
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)


조건문

조건 연산자

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

비교 연산자

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

반복문