C 확장의 Ruby 2.0.0 키워드 인수를 어떻게 처리합니까? 다른 호출 시퀀스 또는 옵션을 많이 가지고 방법을 처리 할 때 (위 같은)C 확장의 Ruby 키워드 인수
배경
def example(name: 'Bob' hat_color: 'red')
puts "#{name} has a #{hat_color} hat!"
end
example #=> "Bob has a red hat!"
example(name: 'Joe', hat_color: 'blue') #=> "Joe has a blue hat!"
키워드 인수는 매우 유용합니다. C 확장 (내 프로젝트에서 OpenGL 드로잉의 대부분을 처리하는 blit
메서드)에 이러한 메서드가 하나 있는데이 메서드를 사용하여 루비에서 키워드 인수를 처리하는 방법이 궁금합니다.
아이디어 내가했던 몇 가지 조사를 바탕으로
, 나는 그런 처리가 rb_scan_args
C 기능에 :
옵션을 통해 수행 될 수 있다고 생각합니다. 그러나, 그것을 사용하는 방법에 대한 정보를 찾을 수 없었습니다.
좋아, 감사합니다! C의 확장 API로 키워드의 인수를 처리 할 수없는 경우,'rb_scan_args'의':'옵션은 무엇을합니까? – tophat
@tophat : 답변 됨, HTH. –