问题标签 [ruby-block]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
189 浏览

arrays - 给定“Array.new(10) { |e| e = e * 2 }”,Array#new 的块形式如何工作?

我无法理解花括号内的部分。

我知道创建了一个具有十个值的新数组,但是后半部分在做什么?

0 投票
2 回答
83 浏览

ruby-on-rails - 在 def 中使用 print 有 yield 语句

我正在尝试在函数内部打印。该函数用于调用块。但我没有看到函数定义中发生打印。请对此有所了解。基本上我不清楚控制流程。

0 投票
1 回答
127 浏览

ruby - 变量赋值发生在块中的块中

我第一次有这个代码,但它不起作用:

configure只是为Vimrunner服务器进行设置的一种方法。该start_vim方法仅描述了应该执行的内容 start vim。然而这并不重要。

实际上正确的是:

我不太明白这一点。在第一种情况下,我实际上为VIM常量分配了一个 Proc,正如我通过 发现的那样irb,而在第二种情况下,VIM常量被正确分配。

看来,我通过使用这些块分配了 VIM 常量(位于全局命名空间中),这就是我的理解失败的地方:

我怎样才能在一个块中的一个块中分配一个变量,并让该分配被扔回全局命名空间?

那是如何工作的?例如,我尝试了以下代码:

这会告诉我一个错误。如何将 ruby​​ 块中的变量放入调用者的范围?

0 投票
3 回答
2517 浏览

arrays - Ruby - 迭代并调用一组方法

可以说我有两种方法:

现在我想以这样的方式调用这些方法:

假设 try_retry 是一种在发生错误时重试代码块的方法。有很多这些方法,所以可以迭代块吗?就像是:

问题是在这条线上评估的方法:

0 投票
3 回答
2087 浏览

ruby - Ruby - 检查block_given有什么区别?和!block.nil?

我有一个 ruby​​ 方法需要检查一个块是否传递给它。一位同事建议简单地检查是否block.nil?在性能上稍快一些,并且适用于命名块。这已经很烦人了,因为他正在使用命名块并使用它来调用它,block.call而不是yield已经证明明显更快,因为命名块在可读性方面更容易理解。

版本 1:

版本 2:

基准测试显示版本 1 比版本 2 稍快,但是快速查看源代码似乎表明它block_given?是线程安全的。

这两种方法的主要区别是什么?请帮我证明他错了!

0 投票
1 回答
108 浏览

chef-infra - 厨师资源ruby_block替换文件中的aline

如何更换:

和 :

0 投票
4 回答
696 浏览

ruby - 如何将 with_index 和 with_object 链接到 ruby​​ 中的可枚举对象上?

我想处理数组['a', 'b', 'c']以返回字符串'0a1b2c'(即,通过将每个索引与其值连接起来形成的字符串)。

我可以做这个:

我想通过使用 with_object 来消除块外的结果变量。

像这样的东西:

但这会引发错误undefined method '+' for nil:NilClass

0 投票
2 回答
2496 浏览

ruby - 将块传递给映射函数

我想知道这样的事情是否可能?

这将允许我通过不同的块以不同的方式排列数组,我现在如何拥有它不起作用,但是这样的事情可能吗?

0 投票
2 回答
462 浏览

ruby - ruby 块不执行代码,只打印输出

我有两个我想按照定义的顺序运行的厨师食谱。首先是安装配方,然后是配置。

这是调用食谱的代码:

我在配置配方之前成功执行了安装配方,但是当配置配方正在执行时,只打印了打印件。

配置配方代码:

上面的代码显示了这个输出:

没有创建 /etc/bowbridge 目录,也没有创建 /lib64 内的链接。我可能做错了什么?

0 投票
2 回答
49 浏览

ruby - 我有一个涉及块并将它们传递的难题,需要帮助解决它

好的,所以我已经构建了一个 DSL,其中一部分需要 DSL 的用户定义我所说的“编写器块”

writer 块的调用方式如下:

问题是双重的,首先,这是处理这种事情的最佳方法,其次我遇到了一个奇怪的错误:

这很奇怪,因为我可以data_block在那里看到,或者至少它至少存在于CSV街区之前。

我正在尝试创建的是一种让用户编写包装块的方法,该包装块既环绕一个块,又为被包装的块产生一个块,哇,这真是一口。