我正在尝试学习Ruby,但我想知道如何将数组用于索引另一个数组,例如
在Perl中,这是manage.py: command not found
,其中所有三个变量都只是通用数组。
如何在Ruby中完成相同的工作?
答案 0 :(得分:5)
如果我没有记错我的Perl,则给出:
my @ro = ('a', 'b', 'c', 'd', 'e');
my @y = (1, 3);
然后@ro[@y]
将是('b', 'd')
,因此表示法只是在@ro
的索引处提取数组@y
的所有元素的一种简写形式。
在Ruby中,我将因此使用Array#values_at
和splat:
ro = %w[a b c d e]
y = [1, 3]
x = ro.values_at(*y)
*y
splat解开数组并为其提供元素,因此在这种情况下ro.values_at(*y)
等效于ro.values_at(1, 3)
。