ruby – 数字上的Puts和times方法
发布时间:2020-12-17 04:19:59 所属栏目:百科 来源:网络整理
导读:这段代码: puts 1.times { puts 2.times { puts 3.times { puts 4 } } } 输出: 4 4 4 3 4 4 4 3 2 1 我希望Ruby能够输出times方法的返回值,但似乎并没有这样做.它打印出调用次数的数字.怎么了? 解决方法 我也没有真正得到那个输出,所以让我们从最里面的表
这段代码:
puts 1.times { puts 2.times { puts 3.times { puts 4 } } } 输出: 4 4 4 3 4 4 4 3 2 1 我希望Ruby能够输出times方法的返回值,但似乎并没有这样做.它打印出调用次数的数字.怎么了? 解决方法
我也没有真正得到那个输出,所以让我们从最里面的表达开始剖析它:
puts 4 # 4 <- this should denote output #=> nil <- this should denote return value 它打印4并返回nil( 将它包装成3次{…}打印4次3次: 3.times { puts 4 } # 4 # 4 # 4 #=> 3 但不是返回nil,而是返回3.这是因为 现在让我们添加另一个看跌期权: puts 3.times { puts 4 } # 4 # 4 # 4 # 3 #=> nil 与上面相同,但也打印3次{…}的结果,即3. 在2.times {…}中包装所有内容会复制上述输出: 2.times { puts 3.times { puts 4 } } # 4 # 4 # 4 # 3 # 4 # 4 # 4 # 3 #=> 2 由于2次{…},它也返回2而不是nil. 添加put打印2: puts 2.times { puts 3.times { puts 4 } } # 4 # 4 # 4 # 3 # 4 # 4 # 4 # 3 # 2 #=> nil 在1.times {…}中包装它会产生相同的输出,但会将结果从nil更改为1: 1.times { puts 2.times { puts 3.times { puts 4 } } } # 4 # 4 # 4 # 3 # 4 # 4 # 4 # 3 # 2 #=> 1 添加最后一次放置打印1: puts 1.times { puts 2.times { puts 3.times { puts 4 } } } # 4 # 4 # 4 # 3 # 4 # 4 # 4 # 3 # 2 # 1 #=> nil (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |