我是ruby的新手。
当我使用irb时,发生了一些事情(什么都没有打印出来)
有人对此有什么建议吗?
我甚至不知道什么搜索关键字在这种情况下是可以的。
(可能是特定于环境的问题?你是怎么想的?)
irb(main):010:0> a = [3,2,1]
=> [3, 2, 1]
irb(main):011:0> a.each
=> #<Enumerable::Enumerator:0x7f413a20d668>
irb(main):012:0> a.each{|x| print x}
321=> [3, 2, 1]
irb(main):013:0> a.each do |x| print x end
321=> [3, 2, 1]
irb(main):014:0> 1.to 9
NoMethodError: undefined method `to' for 1:Fixnum
from (irb):14
from :0
irb(main):015:0> 1.to(9) do |x| print x done
irb(main):016:1> 1.to(9) { |x| print x }
irb(main):017:1> 1.to(9)
irb(main):018:1> 1.upto(9)
irb(main):019:1> 1.upto(9) do |x| print x done
irb(main):020:2> 1.upto(9) { |x| print x }
irb(main):021:2> print "x"
irb(main):022:2> abc
irb(main):023:2> a
irb(main):024:2> b发布于 2012-10-25 13:42:21
出现错误后,您输入的是done而不是end。
在块被解析之前什么都不会执行,但是end从来没有出现,所以irb一直在读东西……
以后只需键入^C或^D,直到返回到顶层或shell,然后重新开始。
发布于 2012-10-25 13:53:01
IRB正在等待某个东西关闭(在本例中,第15行上的do块需要一个end)。
你可以通过观察行号后面的数字(:0,:1,:2...)来注意到这一点:当它是正数时,IRB希望你关闭一些东西。
可以按Ctrl+C键中止当前命令并启动新命令。
https://stackoverflow.com/questions/13062236
复制相似问题