私はちょうどRubyを使用したPragProg継続的テストIRB
を行っています。そこでは、コードを手動で検査するために現在のクラスのコンテキストで呼び出すことについて話します。
ただし、IRB.start
クラスで呼び出す場合、selfは事前定義されており、startが呼び出されたときに存在していたオブジェクトを参照していると彼らは引用しています。これは私の場合は当てはまりません。
のような非常に単純な例でも
a = "hello"
require 'irb'
ARGV.clear # otherwise all script parameters get passed to IRB
IRB.start
変数にアクセスしようとするとa
、明らかになります
NameError: undefined local variable or method `a' for main:Object
a
グローバル変数に変更した場合にのみ機能します
$a = "hello"
require 'irb'
ARGV.clear # otherwise all script parameters get passed to IRB
IRB.start
その後、私はそれにアクセスすることができます
irb(main):001:0> $a
=> 1
現在のクラスのローカル変数とインスタンス変数にアクセスする方法はありますか?