Spec-Zone.ru › Ruby 3.4
  1. Fiddle::
  2. Closure::
  3. BlockCaller

class Fiddle::Closure::BlockCaller

Родительский класс:
Fiddle::Closure

Расширяет Fiddle::Closure, позволяя создавать замыкание в блоке

Публичные методы класса

new (ctype, args, abi = Fiddle::Function::DEFAULT, &block) Показать исходный код
# 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

Публичные методы экземпляра

call (*args) Показать исходный код
# File ext/fiddle/lib/fiddle/closure.rb, line 69
def call *args
  @block.call(*args)
end

Вызывает созданный BlockCaller с аргументами args

Пример см. в разделе Fiddle::Closure::BlockCaller.new

Ruby Core © 1993–2025 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API