모든 문장은 명사와 동사로 이루어져 있다.
루비의 세계에서는 객체가 명사이고
메소드가 동사이다.
위의 사진처럼 메소드는 객체를 메소드에 집어 넣으면
메소드에서 어떠한 일이 수행되고 수행이 끝난 객체가 나오게 된다.
def 메소드 이름 (매개변수)
을 통해 메서드를 선언할 수 있으며
def is_even (number)
if number % 2 == 0
puts "even"
else
puts "odd"
end
end
다음과 같이 짝수인지 홀수인지
판별하는 함수를 작성할 수 있다.
irb에서 직접
메소드를 실행해볼 수 있다.
메소드 호출 결과
3.0.0 :008 > is_even (10)
even
=> nil
메서드는 def 키워드를 이용하여 정의하며
class와 module에 정의하지 않으면 전역 top level에 정의됩니다.
루비의 메서드는 마지막 줄의 표현식을 자동으로 리턴하므로
return 키워드를 생략할 수 있습니다.
가변인수는 파라미터에 * 기호를 사용하여 여러개의 인수를 배열로 받을 수 있도록 합니다.
단, 가변인수는 파라미터의 마지막에 위치해야 합니다.
메서드 선언시 파라미터의 초기값을 설정할 수 있으며
초기값을 설정한 파라미터는 메서드 호출 시 생략 가능하며
선언된 초기값이 사용됩니다.