加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – 枚举器each_slice中的’p’是什么意思?

发布时间:2020-12-17 02:42:24 所属栏目:百科 来源:网络整理
导读:出于好奇,“p”在 Ruby中的enumerable.each_slice中代表什么? 例如: (1..3).each_slice(2) {|n| p n} 打印: [1,2][3] 和 (1..3).each_slice(2) {|n| print n} 打印: 123 而: (1..3).each_slice(2) {|n| puts n} 打印: 123 解决方法 没有神奇或奇怪的行
出于好奇,“p”在 Ruby中的enumerable.each_slice中代表什么?

例如:

(1..3).each_slice(2) {|n| p n}

打印:

[1,2]
[3]

(1..3).each_slice(2) {|n| print n}

打印:

123

而:

(1..3).each_slice(2) {|n| puts n}

打印:

1
2
3

解决方法

没有神奇或奇怪的行为,p实际上指的是Kernel.p

each_slice正在迭代2个元素的切片.所以:

迭代1 – > n = [1,2]
迭代2 – > n = [3]

内核#p在每次迭代中写入n.inspect,因此它写入字符串[1,2]然后[3],每个字符串后跟一个新行.

内核#print写入n后跟值$(字段分隔符,默认为nil),因此它写入[1,2]并立即写入[3]

最后,Kernel#puts递归写入每个数组后跟一个新行.有关它的更多信息:http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/227540

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读