Ruby 比较运算符? == 与 === [重复]

2024-04-12

== 和 === 有什么区别?什么时候应该使用哪一个?


两者都只是在对象上调用的方法。这意味着对象决定哪个意味着什么。然而,Ruby 中有一些关于它们之间差异的约定。通常,===== - a === b几乎总是为真,如果a == b是。阅读此内容的最佳位置是http://ruby-doc.org/core/classes/Object.html http://ruby-doc.org/core/classes/Object.html。向下滚动到有关的不同部分== and ===。以下是我所了解的一些约定:

  • ==,当应用于普通Objects,仅当一个与另一个完全相同时才为真 - 如果它们存储在相同的内存位置(这就是 Ruby 内部的工作方式)。但是,如果参数的类型不是 Object,则通常会覆盖此方法。
  • equal?就像==对于普通的Objects,但永远不会被子类覆盖。
  • === is used for:
    • an is_a?另类,倒退。String === 'str'是真的。
    • 匹配正则表达式。/s[at]r*/ === 'str'是真的。

具体含义你可以查一下===对于这些类的文档中的各种类,例如Range版本在这里(同义词include?): http://ruby-doc.org/core/classes/Range.html#M000691 http://ruby-doc.org/core/classes/Range.html#M000691

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

Ruby 比较运算符? == 与 === [重复] 的相关文章

  • 一种在没有 form_for 或 form_tag 的情况下使用 Rails 表单助手的方法

    我正在尝试迭代我的 Rails 模型FlsCenter并在选择特定 ActiveRecord 时执行一些简单的 JavaScript 我怎样才能使用类似的东西f select并实现这一目标
  • Ruby Koans #75 test_constants_become_symbols,正确答案?

    我的问题建立在这个问题的基础上 Ruby Koan 常量变成符号 https stackoverflow com questions 5358727 ruby koan constants become symbols 我有以下代码 in
  • 从 Ruby 中的方法中检索 Method 实例

    这是一个后续问题如何确定方法是在哪个类中定义的 https stackoverflow com q 34742181 477037 希望你不要介意相似之处 给定一个类层次结构 一个方法可以检索自己的方法吗 Method实例 class A
  • 使用线程和 ruby​​ mechanize 安全吗?

    有没有人见过很多这样的错误 Exception Net HTTPBadResponse at usr lib ruby 1 8 net http rb 2022 wrong status line SOME HTML CODE HERE 何
  • 比较字符变量

    我想在 R Studio 中比较两个不同的字符变量 第一列 BZ Pred 显示参与者预测的 5 个最常用的应用程序 第二列 BZ Act 显示实际使用最多的 5 个应用程序 现在我想创建第三列 如果第一个应用程序被正确猜测 则包含 是 如
  • Ruby 有 mkdir -p 吗? [复制]

    这个问题在这里已经有答案了 可能的重复 如何在 ruby 中递归创建目录 https stackoverflow com questions 3686032 how to create directories recursively in
  • 为什么如果条件无法比较负整数和正整数[重复]

    这个问题在这里已经有答案了 include
  • Ruby on Rails 安装问题 (Windows)

    我从 RuyInstaller 安装了 Ruby 2 0 0 和 DevKit 创建新项目时出现错误消息 rails new testtest d mysql a lot of output here Installing mysql2 0
  • LibXML2 中有“二进制转储”或“获取二进制表示”功能吗?

    我需要访问已加载的 XML DOM 的内部二进制表示形式 有一些转储功能 http xmlsoft org html libxml tree html 但我没有看到类似 二进制缓冲区 的内容 只有 XML 缓冲区 我的最后一个目标是逐字节比
  • 是否有任何 mongodb ORM 允许您为字段添加别名?

    我刚刚看了这个 http blog mongodb org post 38467892360 mongodb schema design insights and tradeoffs from http blog mongodb org p
  • 在 Ruby 中测试重叠数组

    假设我有一个 Ruby 数组数组 100 300 400 500 我正在通过添加连续的 CSV 数据行来构建它 添加新子数组时 测试子数组中两个数字覆盖的范围是否被任何先前的子数组覆盖的最佳方法是什么 换句话说 在上面的示例中 每个子阵列都
  • 使用 Ruby on Rails ActiveSupport::Concern 功能时如何“嵌​​套”包含模块?

    我正在使用 Ruby 1 9 2 和 Ruby on Rails v3 2 2 gem 鉴于我正在使用 RoR 我想 嵌套 包含模块ActiveSupport 关注 http api rubyonrails org classes Acti
  • Rails 6 + Capistrano - 没有这样的 puma.sock 文件

    拜托 我有一个大问题10多个小时了 每当我使用 Capistrano 和 Puma 在 Rails 中运行应用程序部署并重新启动 nginx 时 当我尝试访问我的 Web 时 我会看到此错误 在此输入图像描述 https i stack i
  • 如果 gem 安装不支持,本机扩展会回退到纯 Ruby

    我正在开发一个 gem 目前是纯 Ruby 但我也一直在为其中一个功能开发更快的 C 变体 该功能在纯 Ruby 中可用 但有时很慢 这种缓慢只会影响一些潜在用户 取决于他们需要哪些功能 以及他们如何使用这些功能 因此 如果 gem 无法在
  • 在 sorbet 中,你能指定一个类型是一个类的后代吗?

    我有一个方法返回一个对象 该对象可能是许多不同类型的对象之一 但它们都是同一祖先类的一部分 精确的对象类型是动态推断的 但是 我对签名中返回值的内容感到困惑 我在下面使用了一个占位符instance of来说明问题 sig params i
  • 找到具有公共键的哈希数组的最大值?

    我有两个数组 每个数组包含任意数量的具有相同键但不同值的哈希值 ArrayA value abcd value length 4 type 0 value abcdefgh value length 8 type 1 ArrayB valu
  • 如何触发并忘记子进程?

    我有一个长时间运行的进程 我需要它来启动另一个进程 该进程也会运行很长一段时间 我只需要开始它 然后就完全忘记它 我设法通过从 Ruby 编程 一书中获取一些代码来完成我需要的操作 但我想找到最好 正确的方法 并了解发生了什么 这是我最初得
  • 预编译 Rails 5 以包含所有资源

    我正在尝试预编译所有资产以进行生产 当我跑步时RAILS ENV production bundle exec rake assets precompile并非我的所有资源都经过预编译 我尝试过使用其他人在其他类似问题中建议的方法 但它们对
  • Rails 形式的当前日期

    我正在学习 Rails 并在书外进行一些探索 并随着知识的增长创建一个具有附加功能的简单应用程序 我正在编写一个简单的博客应用程序 我在表单中添加了一个名为 日期 的字段 我不希望这是一个字段 我希望它从服务器获取日期并将其自动放入数据库中
  • 在 Ruby 中, put 方法应用到哪个对象?

    在 ruby 中 您使用点来调用方法 或者换句话说 将方法发送到所处理的对象 100 to i 我们正在向对象 100 发送消息 to i 当我们这样做时 puts hello put 方法应用于哪个对象 我是这样想的 self puts

随机推荐