gpt4 book ai didi

ruby - 为什么 Ruby 的 each 迭代器先执行?

转载 作者:数据小太阳 更新时间:2023-10-29 07:13:20 25 4
gpt4 key购买 nike

我在用 Ruby 执行简单任务时遇到了一件奇怪的事情。我只想用每个方法迭代字母表,但迭代在执行中先进行:

alfawit = ("a".."z")
puts "That's an alphabet: \n\n #{ alfawit.each { |litera| puts litera } } "

这段代码的结果是:(缩写)

a
b
c

x
y
z
That's an alphabet:

a..z

知道为什么它会这样工作或者我做错了什么吗?

提前致谢。

最佳答案

因为您的 each 调用被插入到在固定字符串之前执行的字符串文字中。此外,each 返回一个 Enumerable,实际上您甚至打印它。试试这个

alfawit = ("a".."z")
puts "That's an alphabet: \n\n"
alfawit.each { |litera| puts litera }

puts "That's an alphabet: \n\n"
("a".."z").each { |litera| puts litera }

如果你愿意,你可以使用插值,但以这种方式

alfawit = ("a".."z")
puts "That's an alphabet: \n\n#{alfawit.to_a.join("\n")}"

关于ruby - 为什么 Ruby 的 each 迭代器先执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42363816/

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