我正在测试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时,左侧=>是空白,右侧是返回值.在这种情况下,左侧是返回值...而右侧只是...如果拼写正确,返回值是多少?为什么?
该=>指示的任何代码,您刚刚运行的返回值.也就是说,如果我设置
b = a.scan(/(.)(.)/) {|x,y| print y, x }
Run Code Online (Sandbox Code Playgroud)
那么价值b就是cruel world.它没有出现在新行上的原因是它不会print在打印到屏幕的任何内容的末尾自动添加新行.如果您使用puts而不是print您将看到每个字符出现在它自己的行上,并=> "cruel world"显示在它自己的行的底部.
| 归档时间: |
|
| 查看次数: |
57 次 |
| 最近记录: |