ターミナル ('irb') でインタラクティブな Ruby シェルを起動すると、irb サブシェルを際限なく開き続けることができます。これのポイントは何ですか?
1 に答える
7
これまでのところ、irb サブセッションでできる便利なことを 3 つ見てきました。
- ローカル変数の未定義
selfirb セッションの変更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
selfirbセッションに変更
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 に答える