1. ホーム
  2. ruby

[解決済み] Rubyで変数がHashかArrayかを見分けるエレガントな方法は何ですか?

2022-04-25 05:09:46

質問

を確認するには @some_var をやっています。

if @some_var.class.to_s == 'Hash' 

をチェックする、よりエレガントな方法があるはずです。 @some_varHash または Array .

解決方法は?

すればいいのです。

@some_var.class == Hash

のようなものでもよい。

@some_var.is_a?(Hash)

注目すべきは、"is_a?" メソッドは、クラスがオブジェクトの祖先ツリーのどこかに存在する場合に真となることです。

@some_var.is_a?(Object)  # => true

は @some_var がハッシュやその他の Object から派生したクラスのインスタンスである場合、上記は真となります。そのため、クラスの種類を厳密に照合したい場合は、==やinstance_of? メソッドを使用するとよいでしょう。