类 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 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