ターミナル ('irb') でインタラクティブな Ruby シェルを起動すると、irb サブシェルを際限なく開き続けることができます。これのポイントは何ですか?
質問する
312 次
1 に答える
7
これまでのところ、irb サブセッションでできる便利なことを 3 つ見てきました。
- ローカル変数の未定義
self
irb セッションの変更irb
優れたツールセットの一部です
ローカル変数の未定義
ネストされたirb
は、すべてのローカル変数 (クラス、モジュールなどではない) が定義されていない新しいサブセッションを開始します。
irb(main):001:0> a = 1
#=> 1
irb(main):002:0> irb
irb#1(main):001:0> a
NameError: undefined local variable or method `a' for main:Object from (irb#1):1
self
irbセッションに変更
irb(main):001:0> self
#=> main
irb(main):002:0> irb "Hello World"
irb#1(Hello World):001:0> self
#=> "Hello World"
irb#1(Hello World):002:0> length
#=> 11
注: これは、irb セッションの「バインディングの変更」とも呼ばれます。
ところで、サブセッションを開かずにバインディングを変更することは可能です ( cb
、irb_change-binding
どちらもあなたのためにそれを行います)。しかし、subsession で古いバインディングに戻る方が便利です。
一番いいのは、これirb
は便利なコマンド セットの 1 つにすぎないということです。
irb
: 新しいサブセッションを開始しますjobs
: サブセッションのリストfg
: サブセッションに切り替えますkill
: サブセッションを終了します
詳細については、この興味深い SO 回答を参照してください。
于 2013-05-03T18:53:21.537 に答える