ruby:“p * 1..10”中的星号是什么意思

线

p *1..10 

完全一样的事情

 (1..10).each { |x| puts x } 

这给你以下输出:

 $ ruby -e "p *1..10" 1 2 3 4 5 6 7 8 9 10 

例如,与textmate合作时,这是一个很好的捷径,但是星号是干什么的? 这是如何运作的? 网上找不到任何东西…

One Solution collect form web for “ruby:“p * 1..10”中的星号是什么意思”

这是摔跤运营商 。 您经常会看到它用于将数组拆分成函数的参数。

 def my_function(param1, param2, param3) param1 + param2 + param3 end my_values = [2, 3, 5] my_function(*my_values) # returns 10 

更常见的是用来接受任意数量的参数

 def my_other_function(to_add, *other_args) other_args.map { |arg| arg + to_add } end my_other_function(1, 6, 7, 8) # returns [7, 8, 9] 

它也可以用于多个任务(尽pipe这两个语句都可以在没有图示的情况下工作):

 first, second, third = *my_values *my_new_array = 7, 11, 13 

举个例子,这两个是等价的:

 p *1..10 p 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 
  • 在Rails中是否存在dependency injection?
  • 等于?,eql?,===和==有什么区别?
  • 为什么两个string之间用空格连接在一起?
  • “私人”,“公共”和“受保护的方法”之间有什么区别?
  • LoadError无法自动加载常量消息
  • 实例variables:self vs @
  • 迭代一个数组,每次n个项目
  • 如何从irb获取当前工作目录的绝对path
  • 在Rails中,ERB中的<%,<%=,<%#和 - %>有什么区别?
  • 在Ruby中未定义variables
  • rbenv安装 - 列表不会列出版本2.1.2