如果未正确定义数组,为什么ruby irb会变得无法使用

时间:2013-04-17 16:14:27

标签: ruby irb

如果数组定义不正确,似乎会使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

2 个答案:

答案 0 :(得分:1)

这是因为您忘记了开头的第一句话。它会将该引号添加到下一个输入。按ctrl-C,然后重试。那应该解决它。

如果这没有帮助,请尝试ctrl-D这将向EOB发送EOF。请参阅:http://en.wikipedia.org/wiki/End-of-file

答案 1 :(得分:1)

当您没有关闭单引号字符串时,irb开始将以下所有内容(包括close-array ] )视为该字符串的一部分。< / p>

要返回有效的提示,您需要

  1. 关闭字符串和数组 - 即匹配',然后匹配];或
  2. 按Ctrl-C,使您退出上下文
  3. 看到提示格式错误的字符串后,提示中的最后一位数字会更改为1,并在Ctrl-C后返回0?这就是嵌套深度。如果它为0,那么你将回到itb的主要环境中。