使用IRB时,=>运算符左侧的意义是什么?

apd*_*pdm 0 ruby

我正在测试scan方法,试图更好地理解它.我在命令行中使用IRB来测试它,使用ruby文档中提供的示例:

a = "cruel world"
a.scan(/(.)(.)/) {|x,y| print y, x }
Run Code Online (Sandbox Code Playgroud)

应该返回:

rceu lowlr
Run Code Online (Sandbox Code Playgroud)

好吧,当我运行它时,它确实返回rceu lowlr=> "cruel world":

$ irb
irb(main):001:0> a = "cruel world"
=> "cruel world"
irb(main):002:0> a.scan(/(.)(.)/) {|x,y| print y, x }
rceu lowlr=> "cruel world"
irb(main):003:0>
Run Code Online (Sandbox Code Playgroud)

通常在使用IRB时,左侧=>是空白,右侧是返回值.在这种情况下,左侧是返回值...而右侧只是...如果拼写正确,返回值是多少?为什么?

lwa*_*ink 8

=>指示的任何代码,您刚刚运行的返回值.也就是说,如果我设置

b = a.scan(/(.)(.)/) {|x,y| print y, x }
Run Code Online (Sandbox Code Playgroud)

那么价值b就是cruel world.它没有出现在新行上的原因是它不会print在打印到屏幕的任何内容的末尾自动添加新行.如果您使用puts而不是print您将看到每个字符出现在它自己的行上,并=> "cruel world"显示在它自己的行的底部.