ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Programming Ruby (17) 표현식 - 4
    Ruby 2016. 11. 2. 20:43
    [출처] Programming Ruby 
    (본 게시물은 저작권의 문제 발생시 출판사의 요청에 의해 삭제될 수 있습니다.)


    case 표현식


    case표현식은 강력한 괴물이다. 첫 번째 형태는 if구문을 여러개 둔 것과 아주 비슷하다. 여러 개의 조건을 늘어놓고 구문을 실행했을 때 처음으로 참이 되는 구문을 실행한다.


    case

    when song.name == "Misty"

         # blabla 

    when song.duration > 120

         # blabla

    when time.now.hour > 21

         # blabla

    else

         song.play

    end


    두 번째 형태는 아마도 익숙할 것이다. 비교할 대상을 가장 위의 case 옆에 쓰고, 하나 이상의 when을 늘어놓아서 각각 비교한다.


    case command

    when "debug"

         # blabla

    when /p\s+(\w+)/ 

         # blabla

    when

         # blabla~

    else

         print "wow"

    end


    if와 마찬가지로 case는 마지막에 수행된 표현식의 결과를 반환한다. 조건과 표현식을 같은 줄에 쓰고 싶다면 then 키워드로 구분한다.


    kind = case year

         when 1850..1889 then "blues"

         when 1890..1909 then "Ragtime"

         when 1910..1929 then "New Orleans Jazz"

         when 1930..1939 then "Swing"

         else                              "Jazz"

         end


    case는 비교할 대상을 각각의 when다음에 오는 비교 표현식들과 비교하는 연산을 수행하는데 이때 ===연산자를 통해 이루어진다.


    루비의 클래스는 Class 클래스의 인스턴스다. Class에서는 ===를 매개 변수가 해당 클래스의 인스턴스이거나 상위 클래스 중 하나인지 여부를 검사한다. 따라서 객체의 클래스가 어느 것인지 검사할 수 있다.


    case shape

    when Squre, Rectangle

         # ..

    when Circle

         # ..

    when Triangle    

         # ..

    else

         # ..

    end 





    끄읕



    'Ruby ' 카테고리의 다른 글

    Programming Ruby (19) 예외처리  (0) 2016.11.03
    Programming Ruby (18) 표현식 - 5  (0) 2016.11.02
    Programming Ruby (16) 표현식 - 3  (0) 2016.11.02
    Programming Ruby (15) 표현식 - 2  (0) 2016.10.31
    Programming Ruby (14) 표현식 - 1  (0) 2016.10.31
Designed by Tistory.