개요
메서드(Method) 다른 말로 함수는 프로그램에서 처리해야할 내용을 미리 정의해두고, 필요할 때 호출하여 실행하기 위해서 사용합니다. 이번 블로그 포스트에서는 Ruby에서 메서드를 사용하는 방법에 대해서 알아봅시다.
정의하기
Ruby에서는 아래와 같이 메서드를 정의합니다.
def add(a, b)
x = a + b
return x
end
puts add(1, 2)
# 3
return 문
Ruby에서는 마지막 return
을 생략할 수 있습니다.
def add(a, b)
x = a + b
end
puts add(1, 2)
# 3
마지막 return
이 생략하면 마지막에 기술된 값이 반환값이 됩니다.
괄호
함수의 매개변수가 없는 경우 아래와 같이 괄호를 생략하는 것이 가능합니다.
def print
puts 'Hello'
end
print
# Hello
매개변수
매개변수의 기본값
아래와 같이 매개변수의 기본값을 설정할 수 있습니다.
def add(a, b = 2)
x = a + b
end
puts add(1)
# 3
블록 매개변수
매개변수 앞에 &
를 사용하면 매개변수로 블록(처리 모음)을 전달 할 수 있습니다.
def temp(&a)
a.call
end
temp {
puts "Hello"
puts "World"
}
# Hello
# World
매개변수로 전달된 블록을 실행하기 위해서는 call
함수를 사용해야 합니다.
def temp(&a)
a.call
end
temp do
puts 'Hello'
puts 'World'
end
# Hello
# World
가변 길이 매개변수
길이가 변하는 매개변수는 *
을 사용하여 전달받을 수 있습니다.
def temp(num, *n)
puts num
puts n
end
temp(1, 2, 3)
puts '------------'
temp(1, 2, 3, 4, 5)
# 1
# 2
# 3
# ------------
# 1
# 2
# 3
# 4
# 5
undef 와 defined
undef
Ruby에서는 undef
를 사용하여 정의한 메서드를 취소할 수 있습니다.
def temp
puts 'Hello'
end
temp
undef temp
temp
# Hello
# Traceback (most recent call last):
# temp.rb:9:in `<main>': undefined local variable or method `temp' for main:Object (NameError)
defined
위와 같이 undef
로 정의한 메서드를 취소할 수 있습니다. defined
를 사용하면 메소드가 존재하는지 여부를 확인할 수 있습니다.
def temp
puts 'Hello'
end
puts defined? temp
undef temp
puts defined? temp
# method
#
defined를 사용하면 정의된 식의 종류를 나타내는 문자열을 반환합니다.
# super
# method
# yield
# self
# nil
# true
# false
# assignment
# local-variable
# local-variable(in-block)
# global-bariable
# instance-variable
# constant
# class variable
# $&
# $`
# $1
# $2
# expression
완료
이것으로 Ruby에서 메서드를 정의하고 사용하는 방법에 대해서 알아보았습니다. 또한, Ruby에서만의 독특한 문법도 확인하였습니다. 이제 여러분도 Ruby의 메서드를 사용하여 필요한 처리를 정의하고 사용해 보시기 바랍니다.
제 블로그가 도움이 되셨나요? 하단의 댓글을 달아주시면 저에게 큰 힘이 됩니다!
앱 홍보
지금 보고 계신 블로그를 작성하는
관심있으신 분들은 앱을 다운로드하여 사용해 주시면 정말 감사하겠습니다.
Deku
가 개발한 앱을 한번 사용해보세요.Deku
가 개발한 앱은 Flutter로 개발되었습니다.관심있으신 분들은 앱을 다운로드하여 사용해 주시면 정말 감사하겠습니다.