2

我正在使用一个返回哈希来表示产品的 API:

prod = API.getProduct(id)
prod["name"] => "Widget"

问题的出现是因为并非所有产品都包含相同的属性页面,所以我发现自己做了很多一次性的错误捕捉——有些产品会有sizeor的键color,有些则没有。

最简单的到达方式是prod["non-existent attribute"] => "NA"什么?

4

2 回答 2

4

正如戴夫牛顿所说,您可以将默认值添加到哈希构造函数中:

hash = Hash.new { |hash, key| hash[key] = "NA" }
hash[:anything] == "NA" # => true

或者使用以下#default方法:

hash = Hash.new
hash.default = "NA"
hash[:anything] == "NA" # => true

编辑初始化哈希时设置默认值的快速语法是:

hash = Hash.new("NA")
hash[:anything] == "NA" # => true
于 2013-03-26T19:32:09.980 回答
0

看看这个: http
://www.ruby-doc.org/core-1.9.3/Hash.html#method-i-default 你可以使用prod.default = "NA".

于 2013-03-26T19:24:36.933 回答