2013-04-17 47 views
-2

如果數組定義不正確,似乎會使irb無法使用。還是呢?如果數組未正確定義,爲什麼ruby irb變得不可用

見下面的例子:

irb(main):003:0> set = ['a] 
irb(main):004:1' 
irb(main):005:1' g 
irb(main):006:1' q 
irb(main):007:1' ' 
irb(main):008:1> set 
irb(main):009:1> puts 'hello' 
irb(main):010:1> 
irb(main):011:1* 
irb(main):012:1* ' 
irb(main):013:1' ' 
irb(main):014:1> ' 
irb(main):015:1' ' 
irb(main):016:1> " 
irb(main):017:1" " 
irb(main):018:1> puts "hello" 
irb(main):019:1> ^C 
irb(main):019:0> 
irb(main):020:0* 
irb(main):021:0* ^C 
irb(main):021:0> exit 
+1

''''或'''表示一個字符串,如果你打開一個並且不關閉它,irb就不能計算出字符串的結尾。 – noMAD

回答

1

當你沒有關閉你的單引號字符串,irb開始治療之後的一切(包括關閉陣列])作爲字符串的一部分。

要回到這樣的作品,提示您可能需要

  1. 關閉字符串數組 - 也就是匹配',然後];或
  2. 按Ctrl-C,它會把你出你的上下文

看到,在按Ctrl-C後提示更改1您畸形字符串後,再換0最後一個數字?這是嵌套深度。如果它在0,你回到了itb的主要背景。

1

這是因爲你忘了在開始第一次報價。它會將該報價添加到下一個輸入。按ctrl-C並再試一次。這應該解決它。

如果這沒有幫助,請嘗試ctrl-D這將發送一個EOF到irb。請參閱:http://en.wikipedia.org/wiki/End-of-file