類別 Fiddle::Closure::BlockCaller

延伸 Fiddle::Closure 以允許在區塊中建立封閉

公開類別方法

new(ctype, args, abi = Fiddle::Function::DEFAULT, &block) 按一下以切換來源

說明

建構新的 BlockCaller 物件。

  • ctype 是要傳回的 C 類型

  • args 會傳遞回呼函式

  • abi 是封閉的 abi

如果準備 ffi_cifffi_prep_closure 時發生錯誤,則會引發 RuntimeError

範例

include Fiddle

cb = Closure::BlockCaller.new(TYPE_INT, [TYPE_INT]) do |one|
  one
end

func = Function.new(cb, [TYPE_INT], TYPE_INT)
呼叫超類別方法 Fiddle::Closure::new
# File ext/fiddle/lib/fiddle/closure.rb, line 60
def initialize ctype, args, abi = Fiddle::Function::DEFAULT, &block
  super(ctype, args, abi)
  @block = block
end

公開實體方法

call(*args) 按一下以切換來源

使用 args 呼叫建構的 BlockCaller

有關範例,請參閱 Fiddle::Closure::BlockCaller.new

# File ext/fiddle/lib/fiddle/closure.rb, line 69
def call *args
  @block.call(*args)
end