gpt4 book ai didi

ruby - 仅当设置了 proc 时才调用可选的 proc

转载 作者:太空宇宙 更新时间:2023-11-03 17:43:47 27 4
gpt4 key购买 nike

所以我从 ruby​​ 移植了一个工具,可以在对象上定义回调 block ,我希望在设置回调的情况下调用它。所以基本上是这样的。

def set_block(&block)
@new_kid_on_the_block = block
end

def call_the_block_if_it_was_defined
block.call("step by step") if block = @new_kid_on_the_block
end

我很确定这是一项简单的任务,但不知何故我遇到了问题。

提前致谢!

最佳答案

在 Crystal 中,您几乎总是必须明确指定实例变量的类型。所以这是它的样子:

class A
alias BlockType = String -> String

def set_block(&block : BlockType)
@block = block
end

def call_block
@block.try &.call("step by step")
end
end

a = A.new
pp a.call_block # => nil
a.set_block { |a| a + "!" }
pp a.call_block # => "step by step!"

看看Capturing blocks了解更多。

关于ruby - 仅当设置了 proc 时才调用可选的 proc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46104795/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com