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