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

2024-02-17

the line

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 时,这是一个很好的快捷方式,但是星号有什么作用呢?这是如何运作的?在网上找不到任何东西...


这是splat操作符 http://theplana.wordpress.com/2007/03/03/ruby-idioms-the-splat-operator/。您经常会看到它用于将数组拆分为函数的参数。

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]

它也适用于多重赋值(尽管这两个语句都可以在没有 splat 的情况下工作):

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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • RecyclerView 项目不填充宽度

    我设计了一个带有地图片段和recyclerView的布局 每个recyclerView项目都是cardview 我已经指定给出xml布局 问题是 RecyclerView 项目不填充屏幕宽度 img here https i stack i
  • Scrapy图片下载如何使用自定义文件名

    For my scrapy http doc scrapy org index html我目前正在使用的项目图片管道 http doc scrapy org topics images html scrapy contrib pipelin
  • 防止小部件填充 Flutter 中扩展的祖先

    我如何保留一个RaisedButton从扩大到填补Expanded包含它 我想创建三列 其宽度与可用空间成比例 但我希望每列中的子项为其自然大小 而不消耗其父项的整个宽度Expanded Widget controls BuildConte
  • 如何将多部分表单数据从jsp发送到Web服务?

    我正在尝试为我的网站创建一个注册页面 当用户将数据提交到signup jsp时 我想使用 application x www form urlencoded 将此数据发送到我的Web服务 我怎样才能在JSP中做到这一点 尝试了以下代码 但这
  • 如何将字符串从函数传递到主函数?

    我尝试寻找解决方案 但未能找到 是否可以返回字符串 我想将一个字符串从下面的函数传递回 main 我想通过listofdeatils string 这是我的代码 include
  • 如何使用 Fetch 发布 x-www-form-urlencoded 请求?

    我有一些参数想要以表单编码的方式 POST 到我的服务器 userName email protected cdn cgi l email protection password Password grant type password 我
  • 如何链接winsock.lib?

    在我的 C 课程中 我使用套接字 我在链接时遇到一些错误 因为在我看来 库 Winsock lib 丢失了 我包括这些 ifdef WIN32 include
  • Pro JavaScript 程序员面试问题(含答案)[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 重定向到登录页面时正确的 HTTP 状态代码是什么?

    当用户未登录并尝试访问需要登录的页面时 重定向到登录页面的正确 HTTP 状态代码是什么 我问是因为没有一个W3C 规定的 3xx 响应代码 http www w3 org Protocols rfc2616 rfc2616 sec10 h
  • 插入表..在链接服务器上执行不起作用

    这有效 返回结果集 exec select col count 1 from test dbo Table1 with nolock at svrA 当我尝试将结果集插入表中时 insert into rowcount sub tablen
  • 如何在 IIS 7 中配置 Http 处理程序?

    这就是我想做的 我创建了一个类库项目 这有一个类实现 IHttpHandler 接口 让我们 将该类命名为 ZipHandler 让我们 假设命名空间是 Zip 我希望每当任何 Http 请求提供 zip 文件 我的 ZipHandler
  • PHP 有类似 ruby​​ gem 的打包器吗?

    我是 PHP 程序员 了解 Rails Ruby 宝石捆绑器 http gembundler com 非常好的安装依赖项的工具 php有类似的东西吗 也许某些php框架有这样的工具 关于gem捆绑器的说明 Bundler 在应用程序的整个生
  • MalformedInputException 与 Files.readAllLines()

    我正在迭代一些文件 准确地说是 5328 个文件 这些文件是平均 XML 文件 最多 60 200 行 它们首先通过简单的方法进行过滤isXml源文件解析路径 Files walk Paths get home me development
  • 如何使用 codeigniter 查询获取每个产品的平均评分?

    我有评级表 其中对用户给出的每个产品进行评级 我正在检索所有评级记录 但同时我想根据每个产品获得平均评级 但我无法获得输出 Query this gt db gt select ratings this gt db gt select se
  • Python:名称解析;函数 def 的顺序

    我有一个非常简单的例子 usr bin env python a 1 NameError name a is not defined b 1 NameError name b is not defined c 1 NameError nam
  • Segue 未获取选定的行号

    我正在将数据从表视图控制器传递到详细视图 我尝试使用indexPath row直接在我的prepareForSegue方法 但是它显示错误 使用未解析的标识符 indexPath 因此 在搜索网络后 我设置了变量indexOfSelecte
  • 如何在 Android 版 Eclipse 中启用 LogCat/Console?

    在 Android 中编写一个简单的程序时 我错误地关闭了 LogCat 窗口 我想知道如何再次显示它 在 Eclipse 中 转到 窗口 gt 显示视图 gt 其他 gt Android gt Logcat Logcat 只是模拟器或设备
  • Excel VBA 在表格下方添加数据时扩展表格

    我在 Excel 中有一个表格 当用户在表格后添加数据时 该数据不属于该表格 我创建了一个可以执行来扩展表的代码 代码如下 Sub ExtendTableToLastRow Sheets Update Select If ActiveShe
  • 如何使用 Woocommerce WC_AJAX 类

    我正在开发一个基于 Wordpress WooCommerce 的商店 我使用ajax来调用数据 但我是通过 wp admin admin ajax php 在 function php 文件中使用我自己的函数来完成此操作 昨天我在 woo
  • ruby:“p *1..10”中的星号是什么意思

    the line 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 时 这是一个很好的快捷方式