类 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) 点击切换源代码
调用构造的 BlockCaller
,并使用 args
有关示例,请参见 Fiddle::Closure::BlockCaller.new
# File fiddle/lib/fiddle/closure.rb, line 69 def call *args @block.call(*args) end