루비 기초 문법(3)
이번 포스팅에서는 심볼(Symbol)에 대해서 알아볼까 합니다.
심볼은 미리 정의할 필요가 없는 동시에 유일한 값이 보장되는 상수 이름입니다.
심볼은 :(콜론) 으로 시작합니다.
walk(:south) run(:east)
이런 식으로 말입니다.
그리고 심볼에는 따로 값을 줄 필요가 없습니다. 루비가 직접 고유한 값을 부여해줍니다.
심볼은 주로 해시의 키에 많이 사용됩니다.
name = { :myungseo => 'L3opold7', :dohyun => 'ner0', :hyunwoo => 'Kcrong' }
이런 식으로 쓰이곤 합니다.
그리고 해시를 호출할 때는 이렇게 합니다.
puts name[:myungseo] # L3opold7
이렇게 호출을 하게 되면 'L3opold7' 이라는 String 값을 얻을 수 있습니다.
이렇게 해시를 사용하면 됩니다. 그리고 이제 루비의 강력한 기능 중 하나인 코드 블럭에 대해서 알아볼까 합니다.
코드 블럭은 중괄호나 do ~ end 문으로 감싸진 코드들입니다.
보통은 한 줄 코드일 경우에는 중괄호를 여러 줄일 경우는 do ~ end를 사용합니다.
메서드와 마찬가지로 매개 변수를 넘겨받을 수도 있습니다. 단, 매개 변수를 받을 때는 | | 이것들 사이에 넣어서 보내줍니다.
또한 블럭은 반드시 메서드 호출 다음에 위치해야 합니다.
쉽게 생각하자면 메서드에 인자로 코드를 넘겨주는 셈입니다.
아래의 예를 보면서 설명하겠습니다.
sum = 0 (0..10).each do |num| sum += num end puts num # 55
이 예제같은 경우는 do ~ end 문을 사용한 0~10까지의 합을 구하는 예제입니다.
0..10 부분이 0~10까지의 Array를 만들어주고 Array에 내장된 메서드인 each 메서드를 이용해서 하나씩 블럭에 매개 변수로 넘겨주고 있습니다.
밖에서 sum 변수가 선언되고 블럭 안에서 사용되었기 때문에 두 변수는 같은 변수입니다.
하지만 sum 변수가 코드 블럭 안에서 선언되고 사용되었다면 코드 블럭안의 지역 변수가 됩니다.
읽어주셔서 감사합니다 :)
'Ruby > Study' 카테고리의 다른 글
루비 기초 문법(4) (0) | 2016.06.14 |
---|---|
루비 기초 문법(2) (0) | 2016.04.18 |
루비 기초 문법(1) (0) | 2016.03.28 |
루비 기본 상식! (0) | 2016.03.24 |
Nokogiri, open-uri 사용하기 (0) | 2016.03.24 |