类 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