【问题标题】:Ruby Data Types [closed]Ruby 数据类型 [关闭]
【发布时间】:2019-11-05 16:54:27
【问题描述】:

这三个表达式中哪两个相等?为什么?

{ "city" => "Miami", "state" => "Florida" }
{ :city => "Miami", :state => "Florida" }
{ city: "Miami", state: "Florida" }

【问题讨论】:

  • "which" 在 IRB 会话中检查是微不足道的。回答“为什么”是“因为它是这样工作的”
  • 您是否正在参加考试? :)
  • 在 irb 中尝试它们 :) 看起来在哈希中的键上为您提供相同的类型。注意:使用 ruby​​ >= 2.0.0
  • @Horacio,为什么 >= v2.0?
  • @CarySwoveland 在 ruby​​ 1.9 之后他们引入了“新”(现在是旧的)哈希语法 effectif.com/ruby/update-your-project-for-ruby-19-hash-syntax

标签: ruby


【解决方案1】:

关于使用 Ruby :symbolString in another question here 的讨论非常精彩。

这是 Ruby 中粗箭头 => 语法与冒号 : 之间的 nice discussion about the difference

您可以快速检查使用:symbols 的两个哈希是否彼此等价,这与使用字符串的哈希不同:

a = {"city" => "Miami", "state" => "Florida"}
b = {:city => "Miami", :state => "Florida"}
c = {city: "Miami", state: "Florida"}

a == b
=> false

a == c
=> false

b == c
=> true

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2020-11-28
  • 2014-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-23
  • 2010-10-08
相关资源
最近更新 更多