Ruby:a[1]| | a[3]| | a[6]。。。?

Ruby:a[1]| | a[3]| | a[6]。。。?,ruby,syntactic-sugar,Ruby,Syntactic Sugar,我有一个正则表达式,它在一个匹配中返回多个变量。我对匹配中索引子集中的第一个非空变量感兴趣,因此我使用 result = a[1] || a[3] || a[6] || ... 我希望将相关索引与正则表达式本身一起存储在配置文件中。最好的不混淆意思的速记法是什么?使用values\u at获取仅包含指定索引处元素的数组。然后使用find{| x | x}获取第一个不是nil或false的元素 result = a.values_at(*indices).find {|x| x} 使用valu

我有一个正则表达式,它在一个匹配中返回多个变量。我对匹配中索引子集中的第一个非空变量感兴趣,因此我使用

result = a[1] || a[3] || a[6] || ...

我希望将相关索引与正则表达式本身一起存储在配置文件中。最好的不混淆意思的速记法是什么?

使用
values\u at
获取仅包含指定索引处元素的数组。然后使用
find{| x | x}
获取第一个不是nil或false的元素

result = a.values_at(*indices).find {|x| x}

使用
values\u at
获取仅包含指定索引处元素的数组。然后使用
find{| x | x}
获取第一个不是nil或false的元素

result = a.values_at(*indices).find {|x| x}
另一种方式:

result = [1,3,6].find {|x| a[x]}
另一种方式:

result = [1,3,6].find {|x| a[x]}

问题是非空的,因此假设这意味着坏值是
nil
,这可以简化为
a.values\u at(*索引)。compact。首先
compact
是否保证订单持久性?问题是非空的,因此假设这意味着坏值是
nil
,这可以简化为
a.values_at(*index).compact.first
compact
能保证订单持久性吗?它实际上应该是
a[[1,3,6]。查找{x | a | x |}]
这一点不美观。它实际上应该是
a[[1,3,6]。查找{x | a | x}
,这一点不美观。