본문 바로가기

IT/RUBY

Ruby, 루비 기본 문법 정리!

1. 프로그래밍 언어 Ruby

 

프로그래밍 언어 루비 공식 홈페이지에는 아래와 같이 설명되어있습니다.

 

1995년 일본의 유키히로 마츠모토 씨가 개발했습니다. 간결함과 생산성을 강조한 동적인 오픈소스 프로그래밍 언어이며, 우아한 문법으로 자연스럽게 읽히고 쓰기 편한 프로그램을 만들 수 있다고 합니다.

 

・ 루비는 순수한 객체 지향 프로그래밍 언어이며, 심지어, 루비 코어 코드 부분도 변경하여 사용할 수 있습니다.

 

・ 가장 최신 버전은 19년 1월 30일에 릴리스 된 2.6.1 버전입니다.

2. 루비의 기본 문법

 

・ 대부분 문장 끝에 세미콜론을 붙이지 않습니다.

 

・ 또한, TAB을 사용하기보다는 스페이스 2번을 사용하여 구분합니다.

 

1) 주석

 

# 한 줄 주석

=begin
  Ruby에서 여러 줄의 주석을 사용할때는
  begin과 end를 사용합니다.
=end

 

2) 변수

 

・ String, Integer 등의 타입을 선언하지 않고, 필요한 변수에 대입 하시면, 해당하는 타입으로 자동으로 적용됩니다.

 

로컬변수, 인스턴스 변수, 클래스 변수, 상수, 글로벌 변수는 다음과 같이 표현합니다.

 

# 로컬변수 : 소문자로 작성
bellstone

# 인스턴스 변수 : 변수명 앞에 @
@bellstone

# 클래스 변수 : 변수명 앞에 @@
@@bellstone

# 글로벌 변수 : 변수명 앞에 $
$bellstone

# 상수 : 대문자로 작성
BELLSTONE

 

3) 데이터 표시 방법

 

・ 테이터표시 방법은 print / puts / p입니다.

 

# 출력 후 개행이 되지않습니다.
print "bellstone"

# 출력 후 개행이 됩니다.
puts "BellStone"

# 출력 후 개행이 되고 데이터 타입을 확인할 수 있도록 표시 됩니다.
p "BELLSTONE"
p 123456789

>>>>>>>>>>실행결과<<<<<<<<<<
bellstoneBellStone
"BELLSTONE"
1234567889

 

4) 산술 연산자

 

・ 산술 연산자는 +, -, *, /, %, **입니다.

 

a = 1 + 2 # 더하기 a = 3

b = 2 - 1 # 빼기 b = 1

c = 3 * 4 # 곱하기 c = 12

d = 4 / 2 # 나누기 d = 2

d = 4 % 2 # 나머지 d = 0

f = 2**2  # 지수 f = 4

 

5) 비교 연산자

 

・ 비교 연산자는 ==, !=, >, <, <=, >=, <=>, ===, .eql, .equal? 입니다.

 

#a<=>b 일 때
#a>b일 경우 return 1
#a<b일 경우 return -1
#a=b일 경우 return 0

puts 10 <=> 1
puts 1 <=> 10
puts 1 <=> 1

>>>>>>>>>>실행결과<<<<<<<<<<
1
-1
0

 

・ == / === / .equal? 은 조금씩 다른데, ==은 동일한 값, ===은 소속성, .equal은 동일한 오브젝트를 판별합니다.

 

blog_name = "BELLSTONE"
name_blog = "BELLSTONE"

puts blog_name.object_id       #=>70175517429840
puts name_blog.object_id       #=>70175517429800
puts blog_name == name_blog    #=>true
puts blog_name === name_blog   #=>true 같은 String이기 때문에!
puts blog_name.equal?name_blog #=>false

name_blog = blog_name

puts blog_name.object_id       #=>70320501444140
puts name_blog.object_id       #=>70320501444140
puts blog_name == name_blog    #=>true
puts blog_name === name_blog   #=>true
puts blog_name.equal?name_blog #=>true

 

6) 메서드

 

・ 메서드는 def 메서드 이름 end 형식으로 끝납니다.

 

・ 메서드 명은 영어를 사용하며, 대문자를 사용하지 않고 _를 사용하여 구분합니다.

 

True와 False를 나타내는 메서드에는 ?를 붙입니다.

 

def blog_name
  puts "bellstone"
end

blog_name #=> bell stone

def is_blog_name?(blog_name)
  if blog_name == "BELLSTONE"
    return true
  end
  return false
end

blog_name = "bellstone"
puts is_blog_name?(blog_name) #=> false

 

7) 해쉬

 

・ 해쉬는 {key : value, key : value} 형식입니다. hash에는 fetch / store 등 메서드가 있습니다.

 

・ 문자열을 입력할 경우에는 ""로 표현합니다.

 

hash = {Homepage:"https://itbellstone.tistory.com/", Host:"BELLSTONE"}
puts hash                  #=>{:Homepage=>"https://itbellstone.tistory.com/", :Host=>"BELLSTONE"}
puts hash[:Homepage]       #=>https://itbellstone.tistory.com/
puts hash.fetch(:Homepage) #=>https://itbellstone.tistory.com/
puts hash[:major]          #=>nil

hash[:major] = "ECONOMIC"
puts hash[:major]          #=>ECONOMIC

hash.store(:job, "developer")
puts hash[:job]            #=>developer

3. 끝!

・ 루비에 대해서 아직 공부하고 있기 때문에, 개발을 해나가면서 추가/수정하도록 하겠습니다.

 

・ 그럼 끝!