Ruby

루비 문법 정리(자료형, 변수와 상수, 연산자, 제어문, 메소드)

_29 2021. 3. 22. 11:06

내용은 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로 메소드를 정의해줌.