gpt4 book ai didi

ruby-on-rails - 如何在 ruby​​ 中使用 next 和 inject

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

我正在编写如下代码:

[1,2,3,4,5].inject([]) do |res, a|
res << a*a and next if a == 2
res << a
end

出现以下错误:

NoMethodError: undefined method `<<' for nil:NilClass

接下来它生成 res变量为 nil , 如何解决这个问题?

我尝试了各种方法,但无法使用 ruby​​,我知道我提供的这个片段可以在没有 next( a == 4 ? res << a*a : res << a ) 的情况下完成,但在我的实际用例中,我有一些复杂的逻辑并且可以就这么简单。

最佳答案

替换

res << a*a and next if a == 2

next res << a*a if a == 2

现在,它会起作用。

例子:-

#!/usr/bin/env ruby

ar = [1,2,3,4,5].inject([]) do |res, a|
next res << a*a if a == 2
res << a
end

p ar
# >> [1, 4, 3, 4, 5]

Read the documentation of next

next can take a value, which will be the value returned for the current iteration of the block....

关于ruby-on-rails - 如何在 ruby​​ 中使用 next 和 inject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26831922/

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