gpt4 book ai didi

Ruby:如何创建一个 block 并将其作为参数传递?

转载 作者:数据小太阳 更新时间:2023-10-29 07:32:52 24 4
gpt4 key购买 nike

我正在使用一种将 block 作为参数的方法。我是 Ruby 和 Blocks 的新手,所以我不太明白如何创建 Block 并将其传递给方法。您能否提供一个示例,说明如何创建 block 并将其作为参数传递?

更新:这是我尝试调用的方法的示例:

def exec!(commands, options=nil, &block)
# method code here
# eventually it will execute the block if one was passed
end

这是我目前调用此方法的方式:

@result = ssh.exec!("cd /some/dir; ls")

如何将 block 作为第三个参数传递给 exec! 方法?

最佳答案

这部分取决于您要如何使用它。一个简单的方法是,如果它符合您的使用需求:

@result = ssh.exec!("cd /some/dir; ls") do |something|
# Whatever you need to do
# The "something" variable only makes sense if exec! yields something
end

或者

@result = ssh.exec!("cd /some/dir; ls") { |something| puts something }

{} 表示法通常在 block 较短时使用。

您还可以创建一个Proc 或lambda;最终“正确”的答案取决于您要做什么。

注意有 an example如果您谈论的是 Net::SSH。

关于Ruby:如何创建一个 block 并将其作为参数传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7730249/

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