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 
  • 在Ruby中将数组转换为哈希的最佳方法是什么?
  • Rails respond_with:它是如何工作的?
  • 拒绝警告:您没有设置config.secret_key_base
  • 将db从一个heroku应用程序更快地转移到另一个
  • 我如何使用Ruby进行shell脚本?
  • 如何在Ruby中获取堆栈跟踪对象?
  • 警告:当我运行ruby或gem命令时,不安全的可写dir
  • 如何findrake任务的源文件?
  • erb的含义是什么?
  • 如何在Rails控制台中获得漂亮的格式
  • 如何在Rails环境中运行一个Ruby文件?