哈希有_key?句法

2023-12-30

我有三个哈希值:

a = {key:"value"}
b = {"key"=>"value"}
c = {:key=>"value"}

这些结果:

a.has_key?("key") # => false
b.has_key?("key") # => true
c.has_key?("key") # => false

我的问题是:

  • 为什么?这是什么行为?
  • 我怎样才能得到a, b and c回来true对所有这些都使用相同的语法?

有字符串,也有符号。字符串不是符号。

这些哈希值包含一个符号作为键:

{key: "value"}
{:key => "value"}

该哈希包含一个字符串作为键:

{"key"=>"value"}

这就是为什么你的测试表现得像他们那样。

Rails 有一个 Hash 包装器,称为具有无关访问的哈希 http://api.rubyonrails.org/classes/ActiveSupport/HashWithIndifferentAccess.html。如果您有其中之一,则可以通过字符串或符号访问值。但对于常规哈希来说,是有区别的。

require "active_support/core_ext"

h = {key: "value"}.with_indifferent_access

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

哈希有_key?句法 的相关文章

随机推荐

  • 具有方法的 WCF DataContract 类

    这更多的是一个哲学 最佳实践问题 而不是一个技术问题 是否有任何强有力的论据反对编写带有仅在服务器端使用的方法的 DataContract 类 或者未使用 DataMember 属性修饰的其他属性又如何呢 例如 DataContract p
  • 如何抑制 StyleCop 警告“SA1201:所有方法必须放在所有属性之后。”? [复制]

    这个问题在这里已经有答案了 可能的重复 如何抑制 StyleCop 警告 https stackoverflow com questions 3287656 how to suppress a stylecop warning 我正在编写一
  • 工厂方法模式是模板方法模式的特例吗?

    GOF 谈论 工厂方法 模式的框架 框架需要对象 但对象的实现取决于应用程序 因此创建了创建对象的抽象方法 此外 由于需要返回类型 因此定义了所需对象的接口 它定义了该对象所需的 api 实际对象是由子类 具体应用程序 创建的 这是一种创作
  • 用于在用户填写后隐藏 ploneformgen 表单的 Python 脚本。 (对于 Plone-4.3.2-64。)

    用户填写了 ploneformgen 表单后 我想使用自定义脚本适配器调用 python 脚本来更改用户的本地角色 以便他们不再看到该表单 换句话说 我想防止用户两次填写 或查看 表单 我认为执行此操作的一种方法是调用位于表单文件夹中的脚本
  • Excel VBA - 循环转置

    我有一定范围的数据 以下是示例数据 PAT PID 0 Min 3001 PAT PID 0 Mean 3754 PAT PID 0 Max 4542 CAT PID 1 Min 15004 CAT PID 1 Mean 15040 CAT
  • 我可以在 iPhone 应用程序中为 UIToolBar 提供自定义背景吗?

    是否可以为 UIToolBar 提供图像的自定义背景 而不是通常的蓝色 黑色淡出 我尝试为视图提供背景并设置 UIToolBar 的不透明度 但这也会影响其上任何 UIBarButtons 的不透明度 在这里回答我自己的问题 重写drawR
  • 如何使用 jQuery 更改选择选项上的元素类[重复]

    这个问题在这里已经有答案了 我想改变我的class value 使用 jQuery 选择选项 Example
  • 在直方图上添加数据标签 Python/Matplotlib

    我正在尝试在直方图顶部添加数据标签值 以尝试明显地显示频率 这是我现在的代码 但不确定如何编码以将值放在上面 plt figure figsize 15 10 plt hist df Age edgecolor white label d
  • 从 OnClick 中关闭 AlertDialog.Builder

    我正在尝试为用户弹出一个对话框 该对话框的主体中有两个按钮 底部有一个取消按钮 当用户单击两个按钮之一时 对话框将消失 点击 取消 只会取消对话框 取消部分工作正常 但我不知道如何手动关闭对话框 这是我的代码 public void onI
  • Eclipse 拼写检查器 - 如何删除添加的单词?

    我不小心在 Eclipse 的拼写检查词典中添加了一个我一直拼写错误的单词 我怎样才能把它再次取出来 Eclipse 将您添加的单词放入文本文件中 又称用户定义词典 您可以在以下位置找到该文件的位置窗口 gt 首选项 gt 常规 gt 编辑
  • 测量图像中像素之间的欧几里德距离的算法

    我有许多图像 其中我知道焦距 像素数 尺寸和位置 来自 GPS 它们都是采用高倾斜方式 用市售相机在地面上拍摄的 计算图像中某些像素之间的欧几里得距离的最佳方法是什么 如果确实可以的话 假设您不是在寻找完整的景观建模 而是在寻找简单的近似模
  • Protocol buffer3 和 json

    Protocol buffer v3 声称该库是 json 友好的 https developers google com protocol buffers docs proto3 json https developers google
  • JS 对象 null 检查 - 奇怪的 JS 问题[重复]

    这个问题在这里已经有答案了 想象一下这个简单的场景 我有一个变量 它可以是带有一个属性 ID 的普通 JS 对象 即一个数字或 obj 变量可以为 null 我有简单的 test 函数 它检查变量是否不为 null 并且它必须具有有效的 i
  • 使用 phpunit 时,Eloquent 查询范围返回 Builder 而不是 Model

    我有以下代码 user User findByAccountCode transaction gt account code 当我在 phpunit 上执行此代码时 它返回 Illuminate Database Eloquent Buil
  • 删除包含一组字符的类

    有没有办法删除开始或包含已定义文本字符串的类 我有几个用于背景颜色覆盖的类 bg bgwhite bgblue bgyellow 我为选择框设置了一个小 jquery 用于添加和删除元素的修改类 在本例中是 a href href 标签 我
  • 如何使用 beautifulSoup 访问 span? [复制]

    这个问题在这里已经有答案了 我想获取嵌套标签内的数字 我该怎么做 我的代码输出这个 但我想得到 40 而不是整两行 span class rankings score span 40 span 这是我的代码 from bs4 import
  • r中大量图的排列并用线连接

    我有大量的小地块需要放置在更大的地块画布中 并将小地块排列成并用线条连接它们 一个小例子如下所示 A 到 L 是独立图 给出了它们的放置坐标 绘图网格坐标 PlotgridX和plotgridY可以决定小图何时需要居中 plotcord l
  • 在react-redux中@connect装饰器有什么用

    我正在学习 React 并遵循一些教程 我遇到了这段代码 import React from react import TodosView from components TodosView import TodosForm from co
  • MP MediaLibrary DidChangeNotification 调用了两次?

    我的应用程序使用 iPodMusicPlayer 当暂停时 用户可能会出去并在 Apple 的音乐应用程序中进行更改 例如创建或修改播放列表 然后返回到我的应用程序 我收到了预期的 MPMediaLibraryDidChangeNotifi
  • 哈希有_key?句法

    我有三个哈希值 a key value b key gt value c key gt value 这些结果 a has key key gt false b has key key gt true c has key key gt fal