루비는 순수 객체지향 언어입니다.
원시적인 자료 타입이 존재하지 않고 모든 것이 객체로 이루어져 있습니다.
루비는 숫자 데이터 타입은 숫자 그대로 받아들입니다.
puts 2
의 출력은
2
이다.
또한 숫자를 표한하기 위해 정수와 실수를 사용할 수 있습니다.
정수는 소수점이 없는 수로 Integer라 하며, 실수는 부동소수점이 있는 숫자로 Float이라 합니다.
만약 큰 숫자일 경우 읽기 편하게 하기 위해 세 자리마다 _를 넣어서 쉽게 표현할 수 있습니다.
# Integer
my_num = 100
large_num = 1_000_000
negative = -100
# Float
price = 9.99
문자열 타입은 2가지 형태로 사용 가능합니다.
puts 'Hello World'
puts "Hello World"
일 때, 출력은
Hello World
Hello World
와 같습니다.
즉, '와 "은 구분되지 않습니다.
메서드 이름 끝에 !를 사용하면 변수 자체에 메서드의 결과를 직접적으로 즉시 적용합니다.
first_name.capitalize!
#{variable_name} 표기법을 사용해 문자열 중간에 값을 대입할 수 있습니다.
백슬래시 표기 | 의미 |
---|---|
\t | 탭 tab |
\n | 줄바꿈 line feed LF |
\r | 캐리지 리턴 carriage return CR |
\f | 페이지 바꿈 |
\b | 백스페이스 |
\a | 벨 |
\e | 이스케이프 |
\s | 공백 |
\\ | 백슬래시 |
%() 를 이용해 문자열을 간단하게 생성하거나, 배열, 정규식 등을 간단하게 표현할 수 있습니다.
루비에서는 다른 자료형의 더하기 연산시 에러를 발생시킵니다.
따라서 서로 다른 자료형 간 연산을 위해서는 형변환이 필요한데, .to_x 형식의 메서드를 통해서 쉽게 형변환이 가능합니다.
보통 다른 언어에서 사용하는
데이터가 없다는 의미는 null이지만
루비에서는
nil
로 사용해야 합니다.
참, 거짓을 구분하기 위해서는
다음과 같이 사용해야 합니다.
true
false
배열 요소는 다음과 같이 선언합니다.
배열 요소의 데이터 타입은 구분되지 않습니다.
people = ['eddie', 9801, 3.14, nil, false]
puts people[0]
puts people[10]
의 출력은
eddie
nil
이다.
다차원 배열은 배열 내부에 또 다른 배열을 사용하는 것 입니다.
배열에서의 합집합, 교집합, 차집합
루비는 배열간의 비교를 쉽게 할 수 있는 연산자를 제공합니다.
배열은 객체이므로 다양한 상태와 메서드를 가집니다.
Range 객체 형식을 이용하면 특정 숫자 사이의 값을 손쉽게 배열로 만들 수 있습니다.
해시는 키를 값에 매핑할 수 있는 자료 구조입니다.
해시 = { 키 => 요소 } 를 통해 데이터를 가져올 수 있습니다.
colors = {'red' => 'ff0000', 'green' => '00ff00'}
puts colors['red']
의 출력은
ff0000
입니다.