2017-02-11 9 views
0

私は自分のオブジェクトの後にbinding.pryを追加し始めました。評価するものを決定するためです。しかし、今は出力の対象となるオブジェクトの種類を知りたい。Ruby:irbとbinding.pryでオブジェクト型を判別する方法は?

irbでこれを行うにはどうすればよいですか? binding.pryでこれをどうやって行えますか?

EDIT:ここに が、私はそれがハッシュである知っているが、時にはそれがコンソールにあまり明らかであるオブジェクトHのタイプを決定することを試みたものです:

irb(main):001:0> H = Hash["a" => 100, "b" => 200] 
=> {"a"=>100, "b"=>200} 
irb(main):002:0> H 
=> {"a"=>100, "b"=>200} 
irb(main):003:0> type(H) 
NoMethodError: undefined method `type' for main:Object 
    from (irb):3 
    from /Users/macbook/.rbenv/versions/2.3.0/bin/irb:11:in `<main>' 
irb(main):004:0> object.class(H) 
NameError: undefined local variable or method `object' for main:Object 
Did you mean? object_id 
    from (irb):4 
    from /Users/macbook/.rbenv/versions/2.3.0/bin/irb:11:in `<main>' 
irb(main):005:0> object.is_a?(H) 
NameError: undefined local variable or method `object' for main:Object 
Did you mean? object_id 
    from (irb):5 
    from /Users/macbook/.rbenv/versions/2.3.0/bin/irb:11:in `<main>' 
+0

あなたはあなたが必要としているものの例と、これまで試みてきたものを教えてください。 – Iceman

+0

@Iceman投稿を更新しました。ありがとうございました。 – HashRocketSyntax

答えて

2

あなたはclassを得ることができます

h = {a: 100, b: 200} 
h.class 

# Hash 

であなたもチェックすることができるものは、特定のクラスである場合

h.is_a? Hash 
# true 

h.is_a? String 
# false 
+1

ありがとうございます!その余分なビットは本当に学習に役立ちます。 – HashRocketSyntax

+0

'class Foo 'true'。 Moral:何かが特定のクラスのものかどうかをチェックするにはinstance_of?を使用するべきです:) –

+0

@AndreyDeinekoしかし、FooがHashメソッドに応答するので、すべて役に立たないわけではありません。 FooがHashを継承していることを確認するために 'Foo

0

Ruby言語には「タイプ」という概念はありません。 Rubyでは、型はプログラマの頭の中に潜在的にしか存在せず、プログラムには現れません。 Ergo、プログラムからオブジェクトの型を取得する方法はありません。プログラマからのみ取得できます。

場合によっては、ドキュメントまたはコメントに型が書き込まれることがあります。いくつかのタイプは、基本的にはコミュニティー・フォークロアであり、どこからでも書き留められず、世代から世代に伝わっています。

classについてオブジェクトに質問することができます。methodsについて質問することができますが、whether it responds to a specific messageと尋ねることはできますが、そのタイプについて質問することはできません。ルビーの古いバージョンがtypeがあったが、それは誤解を招くだったので、そのメソッドが削除された

注:それは実際にタイプを(私はそれが不可能である理由上で説明)返しませんでしたが、それはあるクラスを、返さ何か全く違う

+0

興味深いので、この応答を説明しています。この応答を説明していますので、この応答を説明しています。pry(#)> daily_youtube_stats.class => IntegrationStatistic(id:integer、credentials_id:integer、followers_count:integer、following_count:integer、views_count:integer、likes_count: integer_count:整数、media_count:整数、created_at:datetime、updated_at:datetime、user_id:整数、integration_id:整数) – HashRocketSyntax

関連する問題