잊지 않겠습니다.

Ruby에서의 Method의 기본 규칙
  1. def keyword이용
  2. 반드시 소문자로 시작
  3. 무언가를 묻는 method는 대부분 ´?´로 종결
  4. 객체의 값을 바꾸거나 위험한 method는 모두 !로 종결
  5. 대입문에 사용 가능한 method는 =로 종결된다. 
  6. return 값은 마지막으로 실행된 표현식의 결과값이거나 명시적으로 쓰인 return값의 결과가 얻어진다. 
가변 인자 리스트

: python과 비슷하게 가변 인자가 들어가는 경우에는 *로 가변 형식 인수를 구분할 수 있다.

def varargs(arg1, *rest)

"Got #{arg1} and #{rest.join(' ,')}"

end 

Method와 Block

Method내부에서는  yield를 이용해서 block의 코드를 호출 할 수 있다.
Method 선언부에서 형식인수에 &가 붙은 경우에는 형식 인수에  block이  Proc  함수로 대응되어 들어가게 된다.

 class TaxCalculator
    def initialize(name, &block)
        @name, @block = name, block
    end
    def get_tax(amount)
        "#{amount}원에 대한 #{@name} = #{ @block.call(amount) }"
    end
end
 
Method의 호출
print "(t)imes or (p)lus : "
times = gets
print "number"
number = Integer(gets)

if times =~ /^t/
    calc = lamda { |n| * number }
else
    calc = lamda { |n| + number }
end
puts( (1..10).collect(&calc).join(", ") )


Python에서와 동일하게 Hash Table을 이용한 함수의 선언도 역시 사용가능하다.

list.create_search("short jazz songs", 
                 {
                   'genre' => "jazz",
                   'duration_less_than' => 270
                 }
Posted by Y2K
,