奇怪的 Ruby 语法?

2024-01-09

我正在 ruby​​-lang.org 上做 Ruby 20 分钟教程,我发现这段代码与 irb 混淆:

irb(main):015:0> def h(name)
irb(main):016:1> puts "Hello #{name}!"
irb(main):017:1> end

根据解释,#{name}部分只是将变量添加到字符串中?我认为这是一种奇怪而冗长的写法,所以我想我会尝试一下"Hello" + name它的工作方式完全相同..

我用谷歌搜索试图找到一个意义#{}我找不到任何谈论它的内容,所以我想我应该问社区..有什么区别?有吗?

提前致谢!


有时使用+更容易,但在这种情况下你省略了感叹号。考虑:

puts "Hello #{name}!"

vs.

puts "Hello " + name + "!"

我发现第一个更具可读性,特别是在字符串中多次使用时。

还要考虑一下在第二个版本中省略“Hello”后面的空格是多么容易:

puts "Hello" + name + "!"

很容易写,但可能不是你的意思。

最后,当您插入的不是字符串时,它会产生更大的差异:

puts "The Winner was #{name} with a score of #{score}!"

顺便说一句,搜索“字符串插值”可能比仅仅搜索语法更容易找到内容。

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

奇怪的 Ruby 语法? 的相关文章

  • Shoulda/RSpec 匹配器 - 条件验证

    在我的代码中 我使用 Shoulda 匹配器进行了以下验证 效果很好 it should validate presence of name 在我的模型中 我已将条件添加到验证中 validates presence of name if
  • 正则表达式的 o 修饰符是什么意思?

    Ruby 正则表达式有一些选项 例如i x m o i例如 意味着忽略大小写 什么是o选项是什么意思 在ri Regexp 它说o意味着执行 仅插值一次 但是当我这样做时 a one b a a two b不改变 它保持 one 我缺少什么
  • XSL字符串多重替换功能

    如何让这个函数进行多重替换 经验 替换aaa with 111并替换bbb with 222 etc
  • 清洁琴弦的更好方法?

    我正在使用这种方法来清理字符串 public static string CleanString string dirtyString string removeChars lt gt string result dirtyString f
  • 比较 ruby​​ 哈希值[重复]

    这个问题在这里已经有答案了 可能的重复 如何比较两个哈希值 https stackoverflow com questions 4928789 how do i compare two hashes 我有两个 ruby 哈希值 本质上是模型
  • 子文件夹和关系中的 Rails 模型

    我在自动加载的文件夹中组织了一些轨道模型 config autoload paths Dir Rails root join app models 我可以直接使用所有模型 例如Image first file name 但是当我尝试通过关系
  • 嵌套 has_one 关联的强参数

    我似乎遗漏了一些明显的东西 但我无法允许嵌套的属性has one协会 控制器 def create crossword Crossword new crossword params if crossword save render show
  • Javascript:删除字符串标点符号并拆分成单词?

    抱歉 如果之前有人问过这个问题 但我正在尝试从这样的字符串中获取单词数组 Exclamation Question Quotes Apostrophe Wasn t Couldn t Didn t 该数组应该看起来像这样 exclamati
  • 如何声明依赖于参数化任务的 Rake 任务?

    我见过一些任务具有参数和依赖项任务的示例 例如 task name first name last name gt pre name do t args args with defaults first name gt John last
  • 如何使用 ruby​​ 和命令行工具在 mavericks 中正确安装 cocoapod?

    这是我的设置 小牛队10 9 1 Xcode 5 0 2 哪个红宝石返回这个 Users quique123 rvm rubies ruby 1 9 3 p194 bin ruby 但 dvm install ruby 返回 Already
  • 从logstash中的文件名获取事件的时间戳

    我们有一个将事件写入文件的进程 没有时间戳 文件名本身带有时间戳后缀 该时间戳应用于文件中的所有事件 现在 我尝试使用logstash的输入文件插件来解析该文件 有没有一种方法可以将文件名获取到字段 以便我可以使用 gsub 过滤器提取时间
  • 在 Rails 中本地化嵌套虚拟属性

    怎么可能本地化嵌套虚拟属性在 Rails 中 该模型 class User lt ActiveRecord Base attr accessor company information This is used in callbacks e
  • 如何在 mongoid 中使用 or 条件进行查询

    如何在 Mongoid 中使用 or 条件进行查询 这是 OR 在 mongoid 中查询 如果你想要像下面这样的查询 select from user where id 10 or name hitesh 在带有 mongoid 的 Ra
  • 处理铁路中 STI 子类路线的最佳实践

    我的 Rails 视图和控制器散布着redirect to link to and form for方法调用 有时link to and redirect to它们链接的路径是明确的 例如link to New Person new per
  • Ruby:如何在不创建新实例的情况下检查实例方法的参数?

    在 Ruby 1 9 2 中 您可以使用 method symbol 检查任何方法的参数 如何在不创建新车的情况下检查 Car initialize 方法 class Car def initialize fuel type passeng
  • 获取字符串中的最后一个整数

    我需要隔离包含多个整数的字符串中最新出现的整数 我怎样才能得到23代替1 for lastnum1 text 1 out of 23 lastnum1 this gt getEval eregi replace out of text 你可
  • C# 是否有像 Java 那样的字符串分词器?

    我正在做简单的字符串输入解析 我需要一个字符串标记器 我是 C 新手 但已经编写过 Java 程序 因此 C 应该有一个字符串标记生成器似乎很自然 可以 它在哪里 我该如何使用它 你可以使用String Split 方法 http msdn
  • 如何在 Ruby 中将 DateTime.now 转换为 UTC?

    如果我有d DateTime now 如何将 d 转换为 UTC 带有适当的日期 DateTime now new offset 0 将在标准 Ruby 中工作 即没有 ActiveSupport
  • 将名称字符串编码为唯一的数字

    我有一大堆名字 数以百万计 他们每个人都有一个名字 一个可选的中间名和一个姓氏 我需要将这些名称编码为唯一代表这些名称的数字 编码应该是一对一的 即一个名称只能与一个数字相关联 一个数字只能与一个名称相关联 对此进行编码的明智方法是什么 我
  • 使用 crypt() 加密

    我目前正在做一个非常安全的登录系统 但我是 crypt 函数的新手 需要一些快速帮助 我在注册过程中使用 crypt 加密密码字符串并将其保存到数据库中 但是 我如何在登录过程中解密密钥 或者我应该怎么做 或者是否可以对提交的密码字符串进行

随机推荐

  • 错误:实体必须至少有 1 个用 @PrimaryKey 注释的字段

    我是使用房间持久性的新手 每当我尝试运行代码时都会出现此错误 编辑时没有显示错误 但我在 gradle 上遇到构建错误 我不得不复制粘贴代码 但似乎没有一个起作用 这让我很失望 错误如下 error An entity must have
  • NavigationLink 内的 tvOS 按钮不起作用

    我已经使用 swift 和 swiftui 构建了一个 iOS 应用程序 现在我正在开发该应用程序的 tvOS 版本 但是 我有几个问题 其中一个问题仍未解决 tvOS 文本字段透明背景 https stackoverflow com qu
  • 是否可以等到所有 javascript 文件加载完毕后再执行 javascript 代码?

    我们有几个 JavaScript 文件 我们在母版页的底部加载它们 但是 我遇到的情况是 我需要在加载其他脚本之前执行一些 JavaScript 是否可以等到所有 JavaScript 文件加载完毕后再执行一些 JavaScript 代码
  • 从 SCM 检出 Maven 项目 - 无连接器

    我在 Eclipse Indigo 中签出 Maven 项目时遇到问题 我已经安装了 m2e 插件 Subclipse Git 但无法选择合适的 SCM 类型 如何解决这个问题 阿凡是对的 连接器仍然在 Indigo 中 只是隐藏了一点 启
  • MotionLayout:同一视图上的 OnSwipe 和 OnClick

    我正在为我的页面使用 MotionLayout 我有两种状态 可以通过视图的 OnSwipe 进行切换
  • 从 Finalizer 调用托管资源是否安全? (如果我检查空)

    打电话不安全吗 组件 Dispose 如果我检查空 如果我将代码更改为 MyResource Dispose public void Dispose Check to see if Dispose has already been call
  • 错误:服务“xxx”使用未定义的网络“xxx”

    它一直对我说网络是不明确的 错误 服务frontend network使用未定义的网络frontend network 然而 我看到已经有这样一个网络 docker网络ls 我错过了什么 我需要你的帮助 我在谷歌上读了很多相关内容 但找不到
  • Google表格查询非连续范围

    是否可以编写一个引用非相邻 不连续 不连续 我不知道正确的短语 范围的查询 在公式内 例如 query A2 C E2 F 选择 Col2 其中 Col5 3 我希望能够将查询放在 D 列中 因此我想分割它周围的范围 如果我只是说 Quer
  • 在Python中迭代多个列表中值的所有组合[重复]

    这个问题在这里已经有答案了 给定多个可能不同长度的列表 我想迭代所有值的组合 每个列表中的一项 例如 first 1 5 8 second 0 5 4 然后我希望的输出是 combined 1 0 5 1 4 5 0 5 5 4 8 0 5
  • Dapper:单元测试 SQL 查询

    我从 Dapper 微型 ORM 开始 我使用 Dapper Rainbow 我想测试查询和它们检索的数据 我的意思是 例如 我有用户服务用方法GetAll 并且我想测试 sql 查询是否从某个列表中检索所有用户 不是从数据库中检索 因为我
  • 对象传播与 Object.assign

    假设我有一个options变量 我想设置一些默认值 这两种选择的优点 缺点是什么 使用对象传播 options optionsDefault options 或者使用 Object assign options Object assign
  • Android 中的捕获按钮释放

    是否可以像我们捕获单击一样捕获按钮的释放onClickListener and OnClick 我想在按下按钮时增加按钮的大小 并在释放单击时将其移回原始大小 谁能帮我怎么做 您应该在按钮上设置一个 OnTouchListener butt
  • 显示另一个 DialogFragment 中的 DialogFragment

    我有一个DialogFragment向用户显示选项列表 其中一个选项是 删除 选项 当用户按下删除选项时 我想显示另一个 DialogFragment 作为确认 不幸的是 确认对话框不显示 这是我的代码 第一个片段代码 public cla
  • 使用 Microsoft Graph 客户端库访问 user.MemberOf

    Note 我最初提出这个问题 https github com microsoftgraph msgraph sdk dotnet issues 66在客户端库存储库中 他们回复说这是服务库中的问题 而不是 NET 库中的问题 在开发过程中
  • Ruby on Rails:“无法加载此类文件”eventmachine

    我正在尝试在我的 Windows 计算机上运行 RoR 应用程序 我在配置所有内容方面取得了很大进展 但我被困在这里 当我尝试运行 rake 时 出现以下错误 C inetpub wwwroot voterApp gt rails serv
  • 使用 C# 进行调查的进度条[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我使用 C 在 ASP NET 中做
  • Node.js 卷曲与 http.request

    我需要向另一台服务器发送 http 请求 我可以通过两种方式做到这一点 1 使用http request 2 使用child process exec define timeout data url var exec require chi
  • 正则表达式:选择除 img 标签之外的所有内容

    我正在尝试使用正则表达式选择一些文本 留下所有文本img标签完好无损 我发现以下代码选择了所有img tags
  • 如何修改子图位置以阻止它们相互覆盖?

    我正在尝试创建世界地图的子图 6 个图 并在其中写入选定的形状文件 我的问题在于我对子图的放置 它们互相覆盖 我从 stackoverflow 上的其他问题中了解到 这是因为轴以某种方式重叠 但我认为我创建的位置只是 并排 参见下面的代码
  • 奇怪的 Ruby 语法?

    我正在 ruby lang org 上做 Ruby 20 分钟教程 我发现这段代码与 irb 混淆 irb main 015 0 gt def h name irb main 016 1 gt puts Hello name irb mai