본문 바로가기

개발/Ruby on Rails

Ruby : 기초(2) 연산

반응형

루비에서 좌우 항의 크기를 반환하는 연산자는 <=>

<=>연산자는 좌항과 우항의 크기를 비교해서 좌항이 크면 1을, 우항이 크면 -1을, 값이 같으면 0을 반환합니다.

10 <=> 20 # -1
10 <=> 10 # 0
10 <=> 5 # -1

배열끼리의 연산

루비는 합집합, 교집합, 차집합 연산이 가능합니다.

a = [ 1, 2, 3, 4, 5 ]
b = [ 2, 4, 6, 8 ]
a & b # 교집합 : [2, 4]
a | b # 합집합 : [1, 2, 3, 4, 5, 6, 8]
a - b # 차집합 : [1, 3, 5]

루비에는 자동 증감 연산이 없다

루비에는 대부분의 언어에서 제공하는 자동 증감 연산자(++, -- 등)가 없습니다.
특별한 경우가 아니면 += 1 / -= 1을 사용해 증감을 하게 됩니다.

조건문

루비는 if ... elif ... else형태의 조건문을 갖고 있습니다.
한 가지 특이한 점은 if (!조건)형태의 조건문unless ... else도 있다는 것입니다.
그리고 루비의 특징으로 인해 조건에 괄호를 붙일 필요가 없습니다.

a, b, c = 10, 20, 10

if a > b # b가 더 크므로 false
  puts "a is bigger than b"
elsif b == c # 값이 다르므로 false
  puts "b and c is same"
else
  puts "if statement failed!" # 결과

unless a > b # b가 더 크므로 false. unless는 false일 때 실행됨
  puts "a is bigger than b..?" # 결과
else
  puts "b is bigger than a..?"

분기 조건문

타 언어에서 switch-case로 제공되는 기능을 루비에서는 case-when이라는 예약어로 제공합니다.
또한 해당 구문이 끝나도 다음 명령으로 넘어가지 않습니다(명령 뒤에 break가 불필요).
한 줄로 축약할 경우, when뒤에 then이 필요합니다.

v = "apple"
case v
when "apple" then puts "iphone" # 결과
when "banana" then puts "banana phone"
else puts "no phone"
end

'개발 > Ruby on Rails' 카테고리의 다른 글

Ruby : 기초(6) 클래스  (0) 2020.03.14
Ruby : 기초(5) 메소드  (0) 2020.03.14
Ruby : 기초(4) 해시와 심볼  (0) 2020.03.14
Ruby : 기초(3) 반복  (0) 2020.03.13
Ruby : 기초(1) 변수  (0) 2020.03.13