我正在使用一个返回哈希来表示产品的 API:
prod = API.getProduct(id)
prod["name"] => "Widget"
问题的出现是因为并非所有产品都包含相同的属性页面,所以我发现自己做了很多一次性的错误捕捉——有些产品会有size
or的键color
,有些则没有。
最简单的到达方式是prod["non-existent attribute"] => "NA"
什么?
我正在使用一个返回哈希来表示产品的 API:
prod = API.getProduct(id)
prod["name"] => "Widget"
问题的出现是因为并非所有产品都包含相同的属性页面,所以我发现自己做了很多一次性的错误捕捉——有些产品会有size
or的键color
,有些则没有。
最简单的到达方式是prod["non-existent attribute"] => "NA"
什么?
正如戴夫牛顿所说,您可以将默认值添加到哈希构造函数中:
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
看看这个: http
://www.ruby-doc.org/core-1.9.3/Hash.html#method-i-default
你可以使用prod.default = "NA"
.