Mic*_*lko 5 ruby iteration each puts
我在Ruby中执行简单任务时遇到了一个奇怪的事情.我只想用每个方法迭代字母表,但迭代在执行中先行:
alfawit = ("a".."z")
puts "That's an alphabet: \n\n #{ alfawit.each { |litera| puts litera } } "
Run Code Online (Sandbox Code Playgroud)
这段代码导致:(缩写)
a
b
c
?
x
y
z
That's an alphabet:
a..z
Run Code Online (Sandbox Code Playgroud)
任何想法为什么它像这样工作或据说我做错了什么?
提前致谢.
因为您的each调用是在固定字符串之前执行的字符串文字中插入的.另外,each返回一个Enumerable,实际上你甚至打印出来.试试这个吧
alfawit = ("a".."z")
puts "That's an alphabet: \n\n"
alfawit.each { |litera| puts litera }
Run Code Online (Sandbox Code Playgroud)
要么
puts "That's an alphabet: \n\n"
("a".."z").each { |litera| puts litera }
Run Code Online (Sandbox Code Playgroud)
如果你愿意,你可以使用插值,但这样
alfawit = ("a".."z")
puts "That's an alphabet: \n\n#{alfawit.to_a.join("\n")}"
Run Code Online (Sandbox Code Playgroud)