当使用IRB时,=>左侧的意义是什么?运营商?

时间:2016-06-21 04:30:21

标签: ruby

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

a = "cruel world"
a.scan(/(.)(.)/) {|x,y| print y, x }

应该返回:

rceu lowlr

好吧,当我运行它时,它确实返回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>

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

1 个答案:

答案 0 :(得分:8)

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

b = a.scan(/(.)(.)/) {|x,y| print y, x }

然后b的值为cruel world。它没有出现在新行上的原因是print不会在打印到屏幕的任何内容的末尾自动添加新行。如果您使用puts代替print,则会看到每个字符都显示在自己的行上,而=> "cruel world"则显示在其自己的行的底部。