虽然我已经使用Ruby 1.9一段时间了,但我最近才发现新的哈希语法已经被支持:
settings = {
host: "localhost",
port: 5984
}
相较而言:
settings = {
"host" => "localhost"
}
我喜欢它与JavaScript的对象表示法相似,看起来有点像JSON,所以我可能会转而在我的所有库中使用它,但我仍然希望支持其他用户和假定旧语法的自己的项目。
因此,这实际上归结为一个非常简单的问题,需要同时测试符号和字符串。有没有一种简单的方法将这两行代码合并成一行?
return true if settings["host"] and settings["db"]
return true if settings[:host] and settings[:db]
settings = { host: "localhost" }
SyntaxError: compile error (irb):89: odd number list for Hash settings = { host: "localhost" } ^ (irb):89: syntax error, unexpected ':', expecting '}'
我认为他混淆了两个不同的问题。1)字符串与符号键和2)Ruby的新哈希语法。 - Sean Hillsettings = { "long key" => "value" }
- Ricardo