为什么 interactive ruby 会停止显示结果?

Why might interactive ruby stop showing results?

我只是在玩交互式 ruby。

接近开头(第 138 行),我做到了

.  irb(main):138:0> ['rock','paper','scissors'].index('paper')
=> 1

上面的方法有效

然后我尝试了一堆第 139-147 行来尝试更习惯这门语言

然后我没有得到结果,我尝试了一些我认为会起作用的更简单的方法,148-154 但没有得到任何结果。

所以看起来在某些时候我的一个命令可能会阻止它显示结果,但我不确定是什么。

我想让它再次显示结果。我想我可以尝试退出并返回,但我宁愿不这样做,

.  irb(main):138:0> ['rock','paper','scissors'].index('paper')
=> 1
irb(main):139:0> a=[1,2,3
irb(main):140:1> a
irb(main):141:1> a=[1.2.3]
irb(main):142:1> a[0]
irb(main):143:1> a(0)
irb(main):144:1> a=[1,2,3]
irb(main):145:1> a(1)
irb(main):146:1> puts a(1)
irb(main):147:1> puts a[1]
irb(main):148:1> a
irb(main):149:1> a=[1,2,3]
irb(main):150:1> a
irb(main):151:1> h={4=>4}
irb(main):152:1> h
irb(main):153:1> puts 6
irb(main):154:1>

如果有任何区别,这是我的版本号,OS 是 Windows。

C:\blah>ruby -v
ruby 2.1.6p336 (2015-04-13 revision 50298) [i386-mingw32]

C:\blah>

因为这里的这一行:

irb(main):139:0> a=[1,2,3

您还没有关闭数组 ]irb(main):154:1> 中的 :1 清楚表明您在嵌套表达式中。

如果你输入另一个 ],你会得到一个很大的语法错误,因为你之前输入的所有内容都不是有效的数组语法,但是你可以继续。

请注意,自 2019 年底以来,assignment does not output any more the value in irb。 这是一个新案例,其中 Interactive Ruby (irb) 停止显示结果。

注意:您可以通过在 ~/.irbrc.

中设置 IRB.conf[:ECHO_ON_ASSIGNMENT] = true 来获得旧行为