class Fiddle::Closure::BlockCaller
继承自 Fiddle::Closure
,允许在代码块中构建闭包
公共类方法
new(ctype, args, abi = Fiddle::Function::DEFAULT, &block) 点击切换源代码
描述¶ ↑
构造一个新的 BlockCaller
对象。
-
ctype
是要返回的 C 类型 -
args
将传递给回调函数 -
abi
是闭包的 abi
如果在准备 ffi_cif
或 ffi_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 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 fiddle/lib/fiddle/closure.rb, line 69 def call *args @block.call(*args) end