是否有一個好的庫(最好是寶石)做類的對象檢查?難點在於我不僅要檢查簡單對象的類型,而且還想檢查數組或哈希(如果有),並檢查其組件的類。舉例來說,如果我有一個對象:類(類型)檢查
object = [
"some string",
4732841,
[
"another string",
{:some_symbol => [1, 2, 3]}
],
]
我希望能夠檢查各種層次的細節,如果有類不匹配的話,我希望它返回一些合理的方式的位置。我還沒有誤差(類不匹配)的格式應該是這樣一個清晰的思路,但這樣的事情:
object.class_check(Array) # => nil (`nil` will mean the class matches)
object.class_check([String, Fixnum, Array]) # => nil
object.class_check([String, Integer, Array]) # => nil
object.class_check([String, String, Array]) # => [1] (This indicates the position of class mismatch)
object.class_check([String, Fixnum, [Symbol, Hash]) # => [2,0] (meaning type mismatch at object[2][0])
如果不存在這樣的庫,可有人(告訴我在哪個方向我應該)執行這個?可能我應該使用kind_of?
和遞歸定義。
我知道我對於返回值的建議沒有完全指定。這就是我爲什麼要求提出建議的原因。 – sawa 2012-02-08 22:17:23
@sawa:對不起,沒有仔細閱讀。 – 2012-02-08 22:19:44