【发布时间】:2023-03-29 18:13:01
【问题描述】:
我一直使用Array.wrap(x),以确保在调用它们之前,Array 方法确实存在于对象上。
类似地确保哈希的最佳方法是什么?
例子:
def ensure_hash(x)
# TODO: this is what I'm looking for
end
values = [nil,1,[],{},'',:a,1.0]
values.all?{|x| ensure_hash(x).respond_to?(:keys) } # true
【问题讨论】:
-
似乎将任意事物转换为数组要容易得多,因为您只需在其周围添加
[]。这甚至对哈希有用吗?什么是key,什么是val? -
@maxpleaner 我知道,对。这很棘手。有什么想法吗?
-
您期望什么样的输入?如果您在期待哈希时实际上得到了“任何东西”,那么也许您只是在掩盖真正的问题。
-
“我一直使用 Array.wrap(x)”——你能举一个(实际的)例子吗?
-
@NathanHanna 这个例子看起来很做作,你的实际用例是什么(或者
Array#wrap的用例)?
标签: ruby ruby-on-rails-4 interface hashmap type-safety