gpt4 book ai didi

ruby - {puts a} 和 {|a| 之间的区别将 a} 放入 Ruby 中?

转载 作者:太空宇宙 更新时间:2023-11-03 17:42:17 25 4
gpt4 key购买 nike

当我在学习 Ruby 教程时,我看到他们使用第二种打印整个列表的方法,|a| puts a,但我想知道为什么他们不简单地键入 puts a,然后自己尝试,使用 puts a 打印列表两次,但我还没有找到为什么

irb(main):001:0> a = ['hello', 'hi']
=> ["hello", "hi"]
irb(main):002:0> a.each {puts a}
hello
hi
hello
hi
=> ["hello", "hi"]
irb(main):03:0> a.each {|a| puts a}
hello
hi
=> ["hello", "hi"]

基本上,这两者之间有什么区别。在此先感谢,抱歉,如果我是个傻瓜

最佳答案

a.each {puts a}

这意味着“对于数组 a 中的每个元素,打印数组 a”。如果您的数组包含三个元素,则该数组将被打印三次。

这是有效的 ruby​​,但 each 的用法不正确。它应该接受 block 参数中的当前元素(|a|)。不必称为 a,可以是任何东西。这些行产生相同的结果:

a.each { |a| puts a }
a.each { |foo| puts foo }

在第一行 block 参数a 隐藏外部数组a。这就是为什么打印数组的两个元素而不是打印整个数组两次的原因。

关于ruby - {puts a} 和 {|a| 之间的区别将 a} 放入 Ruby 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57453954/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com