기본 인수
기본값을 설정할수 있다.
def numFunc(a, b="test") puts a + " and " + b end numFunc("check") #=> check and test numFunc("check", "check") #=> check and check
인수의 수를 정하지 않는 메소드
인수의의 수를 자유로 바꿀수있는 메소드를 만들수 있다.
형식은 *변수명
def hoge(*args) args end puts hoge(1, 2, 3) #=> 1 # 2 # 3
블록이 붙어있는 메소드
yield
블록이 붙어 있는 메소드에서 블록 호출할때 사용된다.
# 메소드 정의 def testFunc yield(1, 3) end testFunc do |a, b| puts a + b end #=> 4
Proc
블록을 오브젝트화 시킨것.
메소드로 받아넘기기가 가능하게 된다.
# proc 정의 test = Proc.new { puts "a" } # 실행 test.call #=> a
메소드의 정의
alias
메소드에 별칭을 붙이는것이 가능하다.
별칭이 붙은 메소드는 그 시점의 메소드의 정의를 이어간다.
원래 메소드의 정의가 변경되도, 재정의전의 정의와 같은 동작을 한다.
이용하는 경우는 어느 메소드의 동작을 변경할때, 변경전의 메소드의 동작을 재사용할(?) 하고 싶을때 쓰인다.
사용 방법은
alias 별칭 원메소드명
또는 심볼을 사용할때는
alias :별칭 :원메소드명
예제
# 메소드 정의 def test "test" end # 별칭을 부여 # 원래의 정의를 별도장소로 저장한다. alias :_org_test :test # test 의 재정의 def test # 원래 메소드의 정의를 재사용 "is a #{_org_test}" end puts test #=> "is a test"
undef
메소드의 정의를 지우는 키워드.
구체적으로는 메소드명과 메소드의 정의롸의 관계를 떼어낸다.
undef 메소드명 으로 사용한다.
No Comments