루비 문법 정리(자료형, 변수와 상수, 연산자, 제어문, 메소드)
내용은 Opentutorials.org의 강의를 보고 정리한 것입니다.
1. 자료형(데이터 종류)
숫자: 3이라는 숫자를 그대로 숫자로 인식
문자열: '',"" 사이에 작성하면 문자열로 인식 ex) 'Hello world', "Hello world"
Nil: 아무것도 없음
참/거짓: true/false. 컴퓨터가 참/거짓으로 인식
배열(array): 번호와 그에 대응하는 데이터로 이루어진 자료구조. 데이터의 나열. 배열 = [요소, 요소, ...]
ex)
people = [ 'Alice', 4423, 3.14, nil, false ]
people[0] #=> 'Alice' 컴퓨터는 0부터 순서를 매긴다.
배열의 번호에 해당하는 자료가 없으면 nil값을 출력함.
배열 안에 배열을 넣을 수도 있음.
해시(Hash): 해시 = { 키 => 요소 }
키를 값에 맵핑할 수 있는 자료구조. 배열이 숫자로 불러왔다면 해시는 키 값으로 값을 불러옴.
colors = { 'red' => 'ff0000', 'green' => '00ff00' } = { red: 'ff0000', green: '00ff00' }
colors[ 'red' ] #=> 'ff0000'
키를 입력하면 그에 해당하는 값을 불러옴.
2. 변수와 상수
변수: 변하는 값, 상수: 변하지 않는 값
변수의 선언과 활용
상수 2를 변수 x에 대입한다
x = 2 로 변수의 값을 정해주는 행위를 '선언'이라고 함.
변수 = 대입할 값
x + 1 = 3
변수의 종류: 지역변수, 전역변수, 인스턴스 변수, 클래스 변수
지역변수 foo = 'foo in top level'
전역변수 $foo = 'foo in whole'
인스턴스 변수 @foo = 'foo in instace'
클래스 변수 @@foo = 'foo in class'
지역변수: 자신이 선언된 스코프(영역)에서만 참조 가능.
전역변수: 어디서 선언하던, 어느곳에서나 불러올 수 있음.
인스턴스 변수: 클래스 내에 있는 인스턴스에서 불러올 수 있음.
class Ruler
def get_length
puts @hello
end
def set_length
puts @@hello
end
end
3. 연산자
연산자: 특정을 작업을 수행하기 위해 사용하는 기호. 대입, 산술, 비교, 논리
대입 연산자
a = 1. 오른쪽에 있는 값을 왼쪽에 집어 넣는다.
산술 연산자
+ - * **(제곱) /(나눈 몫) %(나눈 나머지)
곱셈은 배열에도 사용 가능. [ 1, 'h' ] * 2 = [ 1, 'h', 1, 'h' ]
비교 연산자
a == b 같으면 true 다르면 falsea! = b 같으면 false 다르면 truea < b a가 b보다 크면 truea <= b a보다 b가 크거나 같으면 true
비교 연산자에서 = 은 뒤에 사용.
논리 연산자
and, && '그리고'의 의미 양쪽 중 모두 true 여야 true. A && B (A도 B도 true 이면 A && B는 true)
or, ||
'또는'의 의미. 양쪽 중 아무나 true 이면 true
A || B
not, !
true 값을 false로, false 값을 true 로
!(A)
4. 제어문
제어문: 자료를 가공하기 위해 필요한 도구들로 실행 흐름의 제어를 위한 문법. 조건문과 반복문
1. 조건문(if, unless)
if 문: 만약 ~~라면
if...elsif...else...end
unless 문: 만약 ~~가 아니라면
unless...else...end
2. 반복문(for, while)
while 문: ~~하는 동안
while...end
for...,do.... (...동안 ...을 하라)
for 변수 in 범위...end. 이 범위 안에서 변수가 바뀜.
for 변수 in 배열...end. 변수에 배열의 원소 하나하나가 담겨서 실행됨.
5. 메소드
모든 문장이 명사와 동사로 이루어져 있듯이, 루비에서는 '객체(Object)'가 명사이고 '메소드(Method)'가 동사이다.
def로 메소드를 정의해줌.