有没有一种简单的方法可以在ruby中将数组和整数相乘?

时间:2019-09-16 20:03:34

标签: python arrays ruby

我需要在数组中重复一组特定的项目。

我在Python中需要这样的东西:

["a","b"] * 3
# result: ["a","b","a","b","a","b"]

我尝试过同样的方法,但是我得到了:

(erb):329:in `*': Array can't be coerced into Integer (TypeError)

有一种简单的解决方法吗?

编辑:已解决。像这样完成时似乎可以正常工作

["a", "b"] * 2

但不能倒退:

2 * ["a", "b"]

2 个答案:

答案 0 :(得分:4)

好吧,它可以在我的Ruby 2.5中使用:

["a","b"] * 3
# => ["a", "b", "a", "b", "a", "b"]  
  

ary * int → new_ary

     

重复—(...)返回通过串联self的int副本构建的新数组。   Docs

答案 1 :(得分:2)

A * B并不总是B * A

3 * 4的意思是:

  

3重复了4次。

4 * 3的意思是:

  

4重复了3次。

["a", "b"] * 3的意思是:

  

["a", "b"]重复了3次。

但是会

  

3重复了["a", "b"]次。

是什么意思?您怎么["a", "b"]次做任何事情?

在Python中

在Python中,两者都允许:

["a","b"] * 3
3 * ["a","b"]

并返回:

['a', 'b', 'a', 'b', 'a', 'b']

但是第二个看起来马虎恕我直言。