理解范围和数组中的 ruby​​ splat

2023-11-21

我试图理解之间的区别*(1..9) and [*1..9]

如果我将它们分配给变量,它们的工作方式是相同的

splat1 = *(1..9)  # splat1 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
splat2 = [*1..9]  # splat2 = [1, 2, 3, 4, 5, 6, 7, 8, 9]

但是当我尝试使用时事情变得很奇怪*(1..9) and [*1..9]直接地。

*(1..9).map{|a| a.to_s}  # syntax error, unexpected '\n', expecting tCOLON2 or '[' or '.'
[*1..9].map{|a| a.to_s}  # ["1", "2", "3"...]

我猜部分问题在于操作员的优先级?但我不太确定发生了什么事。为什么我无法使用*(1..9)我可以用同样的[*1..9]?


我认为问题在于 splat 只能用作左值,也就是说它必须被某些东西接收。

所以你的例子*(1..9).map失败,因为没有 splat 的接收者,但是[*1..9].map之所以有效,是因为您正在创建的数组是 splat 的接收者。

更新: 有关此线程的更多信息(尤其是最后一条评论):在哪里使用 ruby​​ splat 运算符是合法的?

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

理解范围和数组中的 ruby​​ splat 的相关文章

  • Watir 不会下载 PDF,只能在查看器中打开

    我试图用 Selenium 进行测试 但无法下载 pdf pdf 一直打开 参见我的另一篇文章 RUBY Selenium Webdriver 设置为下载 pdf 文件而不是打开它们 https stackoverflow com ques
  • 供用户使用的 Rails 模型结构

    我是 Rails 新手 正在开发我的第二个 Rails 应用程序 该应用程序将为用户提供不同的角色 但某些用户将具有多个角色 该网站的每个用户都将是艺术家 一些用户将担任主持人的角色 我将如何构建这个 在我使用的一些 PHP 应用程序中 只
  • 将表列添加到 Group by 子句 - Ruby on Rails - Postgresql

    我正在尝试使用 Heroku 显然 Postgresql 对于聚合函数来说比 SQL 严格得多 当我推送到 Heroku 时 我收到一条错误消息 内容如下 关于另一个问题 https stackoverflow com questions
  • Ruby 元编程方法列表?

    刚刚开始学习 Ruby 元编程 看看 Object methods 我得到 Object methods gt allocate new superclass freeze lt gt lt lt gt gt to s included m
  • Ruby 多维数组

    也许只是我缺乏在这里找到东西的能力 这就是问题所在 但我找不到任何关于如何在 Ruby 中创建多维数组的信息 有人可以给我一个如何做的例子吗 严格来说 在 Ruby 中创建多维数组是不可能的 但是可以将一个数组放入另一个数组中 这与多维数组
  • 是否可以在 proc 中查看 ruby​​ 代码?

    p Proc new puts ok 是否可以在过程中看到 ruby 代码 inspect返回内存位置 puts p inspect
  • Ruby on Rails 中的枚举

    我是一名 C 程序员 我正在研究 ruby on Rails 但我可能在心态或其他方面遇到了一些麻烦 我有一个投票对象 该对象可以是赞成 中立或反对 我通常会让投票对象有一个像这样的字段 private VoteEnum voteEnum
  • 如何将文件中的行读入数组?

    这就是我想做的 但有一句话 lines Array new File open test txt each line lines lt lt line 可能的 执行如下操作 File readlines test txt Read 文档 h
  • Rails 5.2 Active Storage 添加自定义属性

    我有一个带有附件的模型 class Project lt ApplicationRecord has many attached images end 当我附加并保存图像时 我还想保存一个附加的自定义属性 display order 整数
  • 安装了 Rails 但它说我没有:)

    我刚刚执行了这个命令来安装 Rails gem install rails 它似乎运行良好并安装了东西 然后当我按照本教程进行操作时 http guides rubyonrails org getting started html http
  • 为 .API 文件启用自动完成功能?

    有谁知道如何使用 N 站点上提供的 API 文件在 Notepad 中自动完成工作 在 API 文件夹中具有 XML 自动完成文件的语言中 自动完成功能工作得很好 但对于使用 API 文件的语言 ruby AutoIt 等 完全不起作用 根
  • 如何将 STDOUT 捕获到字符串?

    puts hi puts bye 我想存储到目前为止代码的 STDOUT 在本例中 hi nbye 到变量中说 结果 并打印它 puts result 我这样做的原因是我已将 R 代码集成到我的 Ruby 代码中 当 R 代码运行时 其输出
  • Ruby - :variable 和 @variable 之间的区别

    作为 Ruby on Rails 新手 我知道 和 引用具有不同的含义 我看见这个帖子 https stackoverflow com questions 3538575 whats the difference between and v
  • 从 Rails Helper 返回多个标签的最佳方法是什么?

    我想创建一个隐藏字段并在一个助手中创建一个链接 然后将两者输出到我的 erb 应该输出结果 link to something a path form hidden field something tableize value gt som
  • 迭代比线性代码慢吗?哪一个更可取?

    最近几天我脑子里一直有一个问题 在用 ruby 编写代码时 线性代码是否比迭代更快 更好 让我举个例子 有一个用于相同功能的代码块以两种不同的方式编写 Way 1 dog cat tiger each do pet name puts I
  • 如何阻止“gem”实用程序访问我的主目录?

    当我跑步时 gem install
  • 如何告诉 Ruby 不要序列化属性或如何正确重载 marshal_dump?

    我的 AR B 中有一个不可序列化的属性 o Discussion find 6 Marshal dump o TypeError no marshal dump is defined for class Proc from irb 10
  • 如何查找重复字母最多的单词

    我的目标是找到给定字符串中重复字母最多的单词 例如 aabcc ddeeteefef iijjfff 会回来 ddeeteefef 因为 e 在这个单词中重复了五次 这比所有其他重复字符都多 到目前为止 这是我得到的 但它有很多问题并且不完
  • 日期时间到 NSDate

    如何转换字符串2010 11 19T20 00 00Z进入一个NSDate object 我尝试过使用 dateFormatter setDateFormat yyyy MM ddTHH mm ssZ 但看起来我的自定义格式样式错误 PS
  • 使用 Ruby 通过 Outlook 发送消息的最简单方法是什么?

    我的工作要求我为某些测试自动生成电子邮件 我一直在四处寻找 但一直未能找到可以快速实施的合理解决方案 它需要在 Outlook 中 而不是其他邮件服务器中 因为我们有一些奇怪的身份验证规则 并且我们需要保存草稿的选项 而不仅仅是发送消息 显

随机推荐

  • 如何将 Spring @Autowired 所需属性设置为 false 进行测试?

    到目前为止 我一直在使用 Required 注释来确保 Spring 配置的应用程序中的 DI Bean 要启用注释 您需要在配置中声明一个RequiredAnnotationBeanPostProcessor bean 在你的测试配置中
  • 规避 SCHEME 中的 EVAL

    彼得 诺维格 Peter Norvig 在 PAIP 中说道 在现代 lisps 中 eval 很少被使用 事实上 在Scheme 中有 根本没有评估 如果您发现自己使用 eval 那么您可能是 做错事 有哪些方法可以规避使用eval在计划
  • 在 if 语句中分配和测试变量的最合适方法是什么?

    以下哪一种是首选的做事方式 为什么 是否有任何具体情况会产生任何影响 假设函数 bar 在任何时候都不取零值 案例1 测试两个条件的真值 if foo bar foo lt 0 error 情况 2 仅测试分配的变量 if foo bar
  • 如何在 IE 中一次性下载多个文件

    我想通过单击 jsp 中的按钮来下载多个文件 我在 js 中使用以下代码来调用一个 servlet 两次 var iframe document createElement iframe iframe width iframe height
  • UIView 动态高度取决于标签高度

    我有一个标签 它动态地从数据库中获取一些数据 这些数据是字符串 有时可以是 3 4 5 行等 所以这个标签位于 UIView 内部 UIView Label 我怎样才能使UIView动态获取标签的特定高度 你可以用这张照片的故事板来做 将标
  • 保护 git 存储库中的文件

    我有一个中央存储库 其中包含我希望防止其他用户更改 通过推送 的文件子集 如果我将这些文件添加到 gitignore 它们不会被克隆 是否可以提供克隆所有文件的能力 但克隆后将其中一些添加到 gitignore在客户端 您可以将文件放在存储
  • WCF 是否始终使用 SOAP 通过绑定发送信息?

    据我所知 您可以从一系列绑定中进行选择 例如 TCP HTTP HTTPS 等 我认为它总是使用 SOAP 通过此连接发送数据是否正确 我正在观看 WCF 指南 其中讨论了如何将异常序列化为 SOAP 并发送到客户端 我本以为并非所有绑定都
  • Android 检查是否有WiFi但上不了网

    我正在编写一个程序 需要检查三种状态 1 如果我没有 WiFi 2 如果我有 WiFi 但没有互联网连接 就像我打开路由器但拔掉以太网电缆 以及 3 如果我有 WiFi 和互联网连接 然后 我会更改应用程序中图标的颜色来代表这些状态之一 红
  • Ctrl+Space 更改键盘,而不是在 Visual Studio 2010 上显示 Intellisense 的自动完成列表

    我注意到 Visual Studio 2010 意外地更改了键盘布局 我尝试了一些解决方案 例如 Going to Windows Control Panel and removing other languages Going to Me
  • 使用 MVVM 从 WPF 应用程序启动对话框/子窗口的标准方法

    所有 我想知道使用 MVVM 模式从 WPF 启动 子 对话框 窗口的公认最佳方法 行业标准 我遇到过以下文章 A CodeProject 使用 MVVM 模式时显示对话框 这种方法对我来说似乎不错 但有些过分了 这是某种程度的代码复制 我
  • Python 3 中大于 10^2000 的数字的平方根

    我想在Python中计算大于10 2000的数字的平方根 如果我将这个数字视为普通整数 我总是会得到这个结果 Traceback most recent call last File line 3 in
  • 在项目“MyProject”上运行构建器“Faceted Project Validation Builder”时出错

    我正在研究 Blackberry webworks Phonegap 框架 Apache Ant 并使用示例 index html 在 Eclipse 3 6 中配置它们 我关注了这篇文章PhoneGap BlackBerry WebWor
  • 您可以从 GitHub 上的命令行发出拉取请求吗?

    似乎您必须与 github com 交互才能发起拉取请求 是这样吗 UPDATE The hub命令现已成为官方github项目 也支持创建拉取请求 ORIGINAL 似乎添加到 hub 命令中特别有用 http github com de
  • ES6 类私有属性只是语法糖吗?

    使用 语法我们现在可以创建私人财产在 ES6 类中是这样的 class Person name constructor name this name name getName return this name let ron new Per
  • Lambda 表达式以及如何组合它们?

    如何使用 OR 将两个 lambda 表达式合并为一个 我已尝试以下操作 但合并它们需要我将参数传递到表达式 调用调用 但是我希望将传递到新 lambda 的值传递到每个子 lambda 上 Expression
  • Java:以编程方式确定类路径上加载的所有包名称

    关于如何找到列表的任何建议包名存在于当前类路径 这需要在运行时由类路径上加载 和执行 的类之一以编程方式完成 即 反了 而不是从外到内 更多细节 我考虑的一种方法是对类加载器迄今为止加载的每个类使用反射 并从中提取包名称 但是 我的应用程序
  • iOS 6 ViewController 正在旋转但不应该旋转

    我希望我的几个应用程序视图控制器在 iOS 6 0 中不旋转 这就是我为使 iOS 6 中的轮换成为可能而所做的 1 在 application didFinishLaunchingWithOptions 中设置 windows rootv
  • 动态生成的 HTML 的格式 - 没人关心吗?

    I have veryWeb开发经验很少 所以这可能是一个非常基本的问题 只是 以我有限的经验来看do有 一点PHP 一点Ruby on Rails 动态生成HTML的方式似乎是格式化的只是 没关系 它最终变得丑陋 有奇怪的缩进 没有人关心
  • 流式传输 xml-conduit 解析结果

    我想用xml conduit 具体来说Text XML Stream Parse为了从大型 XML 文件中延迟提取对象列表 作为测试用例 我使用最近重新发布的 StackOverflow 数据转储 为了简单起见 我打算从中提取所有用户名st
  • 理解范围和数组中的 ruby​​ splat

    我试图理解之间的区别 1 9 and 1 9 如果我将它们分配给变量 它们的工作方式是相同的 splat1 1 9 splat1 1 2 3 4 5 6 7 8 9 splat2 1 9 splat2 1 2 3 4 5 6 7 8 9 但