未定义的方法“+@”

2024-01-06

我不明白为什么这不起作用;所有三个元素都应该是字符串。

i = 5
base = "somestring"
base = i.to_s +" #{base} " + i.to_s # => Undefined method '+@'

为什么将其解释为方法?我想这可能与设置有关base等于其自身的一部分,但这似乎有效:

base = "#{base}"

好问题!在红宝石中,+@方法定义一元 + 运算符的行为。换句话说,它定义了当你有这样的表达式时会发生什么+someSymbol.

所以,在这种情况下,它会看到你的表情部分,+" #{base} "并尝试将一元 + 方法应用于不存在的字符串。

尝试在之间添加空格+和字符串的开头。


同样有趣的是,这种情况只发生在某些情况下。

i = 2
i.to_s +"foo" # => NoMethodError: undefined method `+@` for "foo":String
"2" +"foo"    # => "2foo"

发生什么了?i.to_s +"foo"相当于i.to_s(+"foo")。现在您可以明白为什么调用一元 + 函数而不是字符串连接运算符。


因此,您还有其他选项来修复代码:

i.to_s() +" #{base} " + i.to_s

or even

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

未定义的方法“+@” 的相关文章

  • 为什么我不能“string”.print()?

    我的理解print 在 Python 和 Ruby 以及其他语言 中 它是字符串 或其他类型 上的方法 因为它的语法非常常用 打印 嗨 works 那么为什么不呢 hi print 在 Python 中或 hi print在红宝石工作 当你
  • 如何使用 Nokogiri 将带有 & 符号的字符串放入 xml 文件中?

    我试图在 XML 文件中包含图像的 URL 并且 URL 查询字符串中的 符号被删除 bgdoc xpath Master each do elem part elem xpath Part inner text image imageha
  • 我可以通过 GH API 获取两次提交之间一个文件的差异数据吗?

    我知道如何通过 API 以及 SHA 和所有这些好东西来获取文件的提交 但是 假设我只想要 1 次提交中的文件差异或两次提交中同一文件的差异 例如 在这次提交 https github com rails rails commit ea75
  • Rails current_path 助手?

    我正在开发具有以下路由条件的 Rails 3 2 应用程序 scope locale locale de en do resources categories only index show get newest index as newe
  • 在 Ruby 中将多个代码块作为参数传递

    我有一个需要代码块的方法 def opportunity opportunities 1 if yield performances 1 end end 我这样称呼它 opportunity some array empty 但是我如何传递
  • 在 Ruby Net::HTTP.start 中为服务调用设置 read_timeout

    我想在我的 ruby 代码中覆盖服务调用的默认超时 我打开连接如下 res Net HTTP start task url host task url port do http http get tasks task id end 我尝试将
  • 检查数组元素的大小是否相同

    有没有最好 最有效的方法来检查数组元素的大小是否相同 1 2 3 4 5 gt false 1 2 3 4 5 6 gt true 我有什么 def element of same size arr arr map size uniq si
  • to_proc 方法在 Ruby 中意味着什么?

    我正在学习 Rails 并关注这个线程 https stackoverflow com questions 1961030 我被困住了to proc方法 我认为符号只是字符串的替代品 它们就像字符串 但在内存方面更便宜 如果我还缺少任何其他
  • Rails has_many 通过带有附加属性的表单

    我正在尝试创建一个表单 允许用户向活动添加 编辑 删除位置 我目前找到的所有例子要么是HABTM表单 不允许编辑存在于表单中的附加属性 has many through配置 或仅列出现有关系 下面的图片显示了我想要完成的任务 该列表将显示每
  • 当你不继承Rails 4中的ApplicationController时,如何包含respond_to?

    我在 Rails 4 1 2 应用程序中有一个 API 控制器 它不继承自应用程序控制器 我试图包含 respond to 方法并得到一个方法未定义的错误 所以然后我需要在顶部的操作包 如下所示 require action pack cl
  • 字符串被两个不同的分隔符分割

    我有这样的字符串 some dasd dasd dasdas dasdas dasd das dsad 我需要用两个不同的符号将字符串拆分为数组 and 所以我想得到数组 some dasd dasd dasdas dasdas dasd
  • Accepts_nested_attributes_for Rails 3 中的实际形式使用

    使用 Ruby on Rails 3 我半明白accepts nested attributes for是如何的supposed工作 但我无法找出以某种形式实现这一点的实用方法 例如 如果有人想在其用户页面中添加他们最近的位置 user r
  • 使用 Ruby 替换文件中的特定行

    我有一个如下所示的文本文件 a txt open close open open close open 我需要找到一种方法将第三行替换为 close 我做了一些搜索 大多数方法都涉及搜索该行而不是替换它 在这里不能真正做到这一点 因为我不想
  • 在所有延迟的作业之前挂钩

    是否可以在所有delayed job任务之前运行一个方法 基本上 我们试图确保每台运行delayed job的服务器都有我们代码的最新实例 因此我们希望运行一个方法来在每个作业运行之前检查这一点 我们已经有了 check 方法并在其他地方使
  • 平衡付款 - 有关获取现有买家和商家账户参考信息的文档

    我如何获得已创建的买家和商家帐户的参考 我只是找到创建买家和商家帐户的示例 我没有找到任何有关获取该信息以供重用的示例 是否有关于此的现有文档或只是 rdoc 中的内容 根据对 rdoc 的引用 我假设您在这里使用 Ruby gem 使用唯
  • 从轨道控制器返回

    这是一个初学者 Rails 问题 我这样做之后 format xml head ok 如何从控制器端点返回而不显示视图 如果我此时放弃函数的末尾 我会得到我所期望的结果 但如果我调用 返回 我最终会进入视图 或者在我的情况下会出现缺少的视图
  • 如何告诉 Ruby 不要序列化属性或如何正确重载 marshal_dump?

    我的 AR B 中有一个不可序列化的属性 o Discussion find 6 Marshal dump o TypeError no marshal dump is defined for class Proc from irb 10
  • 如果数组包含一个或多个相同值,则合并数组

    我有一个数组数组 a 1 2 3 3 4 5 6 7 8 8 9 9 10 我想合并包含一个或多个相同值的所有数组 所以 a 1 2 3 4 5 6 7 8 9 10 我正在努力寻找一种简洁的方法来解决这个问题 有任何想法吗 我相信这是正确
  • Rails:验证字符串的最小和最大长度,但允许其为空白

    我有一个想要验证的字段 我希望该字段能够留空 但如果用户输入数据 我希望它采用某种格式 目前我在模型中使用以下验证 但这不允许用户将其留空 validates length of foo maximum gt 5 validates len
  • 在Ruby中从csv文件中获取第二行[重复]

    这个问题在这里已经有答案了 actual row File open file name 0 r first row data CSV foreach actual row do row first row data lt lt row 1

随机推荐

  • racket程序与python程序之间的通信

    我想要球拍程序和Python程序之间的通信 我的球拍代码 lang racket define values sp o i e subprocess f f f hello exe display server i flush output
  • 正确[超级dealloc]

    dealloc 方法中语句的顺序重要吗 是否 super dealloc 需要在方法的顶部吗 有关系吗 也在例如viewDidLoad 应该 super viewDidLoad 位于方法的顶部 It 绝对地很重要 您的操作取决于您使用的是自
  • 根据用户的区域设置和偏好设置日期和时间的格式(以秒为单位)

    我试图根据用户的设置获取格式化的日期 年 月 日 和时间 小时 分钟 秒 字符串 This https groups google com forum topic android developers I35vKNWqLdQAndroid
  • 使用 ruby​​ PaperTrail 具体化版本时出错

    我按照中的说明进行操作https github com paper trail gem paper trail https github com paper trail gem paper trail 在项目 Gemfile 中添加 pap
  • 使用 google_places 进行多个位置搜索(来自 googleway)

    假设我有一个包含多个位置的向量 经度和纬度格式 我想使用 google places 找到最近的地铁站 但是 我总是收到这样的错误 validateGeocodeLocation 位置 中的错误 位置必须是一对纬度和经度坐标的向量 代码如下
  • Boost::asio - 如何中断阻塞的 TCP 服务器线程?

    我正在开发一个多线程应用程序 其中一个线程充当从客户端接收命令的 TCP 服务器 该线程使用 Boost 套接字和接受器来等待客户端连接 接收来自客户端的命令 将命令传递给应用程序的其余部分 然后再次等待 这是代码 void ServerT
  • 动态增加文本框高度? [复制]

    这个问题在这里已经有答案了 可能的重复 自动调整文本区域大小 https stackoverflow com questions 7477 autosizing textarea 大家好 我正在尝试解决一个问题 但毫无进展 我想做的是当用户
  • Restler API框架安装

    我想开始使用 Restler 开发 Rest api 但是 我找不到有关如何安装它的任何详细信息 此外 它似乎在 nginx 服务器上运行 有没有办法在apache上运行这个框架 是否有其他替代方案来构建高质量的 APIS 有关于安装这个框
  • 使用 Ninject 获取对象的实例

    我安装在我的项目上Ninject MVC3 http nuget org List Packages Ninject MVC3通过努吉特 I read 本文 http azolotar blog com 2011 02 17 ninject
  • 如何使用 valgrind 启动 Android 应用程序

    上周我一直在寻找这个问题的答案 如何使用 valgrind 启动 Android 应用程序 我知道我可以使用 am 命令启动应用程序 但它会启动应用程序并退出 我正在编写一个使用 NDK 执行本机 C 代码的应用程序 我需要检查它是否存在可
  • 如何使用Odin解压、修改、打包和烧写`system.img.ext4`文件?

    我有一个system img ext4 lz4与我的三星 S10 5G 高通 设备兼容的文件 我已经提取了system img ext4文件来自system img ext4 lz4 using unlz4 system img ext4
  • javascript 承诺的正确术语是什么

    我对周围的不同术语感到困惑 根据我的理解 承诺可以是 实现了 rejected pending settled resolved defer 解决了就是解决了吗 还是说已经实现了呢 延迟到底是什么 术语可能很难 让我们从承诺 A 规范 ht
  • 如何对字典中相同键的值求和?

    假设我的字典 mydict red 6 blue 5 red 12 这是我到目前为止所做的 for key value in mydict if key mydict keys key value value else print key
  • Py3k 通过返回迭代器而不是列表来节省内存

    许多过去在 Python 2 x 中返回列表的方法现在似乎在 Py3k 中返回迭代器 迭代器也是生成器表达式吗 懒评价 因此 Python 的内存占用将大大减少 不是吗 使用内置脚本从 2 转换为 3 的程序又如何呢 为了兼容性 内置工具是
  • 属性或获取/设置方法对对象大小的影响

    就对象大小而言 如果公开的属性不表示状态而只是将其 getter 和 setter 调用委托给另一个实体 则属性 而不是 Get Set 方法 如何影响对象大小 例如 考虑以下类 public class Person Address ad
  • 如何在没有 ON 子句的情况下连接 2 个表

    我想要得到SUM column a 从两个不同的表中获取它们的差异 我正在使用MySQL Table A s sum 1234 Table B s sum 4001 我不知道该放什么在我的ON clause SELECT SUM a col
  • Microsoft Bot 与 Whatsapp 集成 [已关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在尝试整合微软机器人框架 https dev botframework com 使用 WhatsApp 我已经拥有与机器人服务对话
  • 如何从亚马逊获取产品的图片和标题?

    我正在尝试根据亚马逊的独特产品代码制作一个产品列表 例如 https www amazon in gp product B00F2GPN36 https www amazon in gp product B00F2GPN36 其中 B00F
  • UIView 子类有自己的 XIB [重复]

    这个问题在这里已经有答案了 我创建了一个自定义 UIView 子类 并且不希望在 UIView 子类中的代码中布局 UI 我想使用 xib 来实现这一点 所以我所做的如下 我创建了一个 ShareView 类 它是 UIView 的子类 我
  • 未定义的方法“+@”

    我不明白为什么这不起作用 所有三个元素都应该是字符串 i 5 base somestring base i to s base i to s gt Undefined method 为什么将其解释为方法 我想这可能与设置有关base等于其自