class Fiddle::Closure::BlockCaller
扩展 Fiddle::Closure
以允许在代码块中构建闭包
公共类方法
源代码
# 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
描述¶ ↑
构造一个新的 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 69 def call *args @block.call(*args) end
使用 args
调用构造的 BlockCaller
有关示例,请参见 Fiddle::Closure::BlockCaller.new