【发布时间】:2013-04-25 17:14:43
【问题描述】:
这个问题应该是这个问题的反面:Why use symbols as hash keys in Ruby?
如您所见,每个人都同意符号是哈希键最合乎逻辑的选择。但是,我正在使用 sinatra 框架构建一个 Web 应用程序,而 request 对象是一个包含 Strings 作为键的哈希。谁能解释一下为什么这是一种设计选择?
【问题讨论】:
-
请注意,对于 Sinatra,您可以使用 either a string or a symbol。
-
“每个人都同意符号是哈希键最合乎逻辑的选择”,不,他们不这样做。这是程序员的选择,有时基于从众本能,但更多时候基于当时最有意义的选择。在字符串和符号之间,我通常使用符号,但我也使用正则表达式模式甚至数组作为键,因为它很方便。 Hash 是一个容器,就像 Array 一样,可以包含各种各样的东西。我们在那里坚持的内容取决于我们,并且应该对那个应用程序有意义。如果我们只讨论 Sinatra 中的参数哈希,请参阅 @Phrogz 答案。