ruby-on-rails - print + each() block - 为什么加入不起作用?

标签 ruby-on-rails ruby syntax

我期待这样的输出:

output:xyz

但是如果我输入以下内容:

a = ["x", "y", "z"]
print "output:" + a.each {|i| print i}.to_s

为什么我在单词输出前后都会得到一个“xyz”?

xyzoutput:xyz 

最佳答案

在 irb 中:

>> %w{x y z}.each {|i| i }
=> ["x", "y", "z"]

调用 each 的返回值是调用它的 Enumerable 对象。因此,您基本上是在传递给 each 的 block 中打印出数组的每个元素,然后将数组转换为字符串并再次打印,并将其与字符串 “输出:”

关于ruby-on-rails - print + each() block - 为什么加入不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/543307/

相关文章:

ruby-on-rails - 如何简化这个 Rails 3 Controller 方法

ruby - 解释一下为什么这个 Ruby 脚本中会抛出 TypeError

Ruby:检查所有数组元素是否相等

ruby |二进制读取 : failed to allocate memory (NoMemoryError)

forms - 使用 charcode 只允许数字并输入 key

c# - @前缀对C#中的字符串文字有什么作用

ruby-on-rails - 为什么= javascript_include_tag :defaults not work in a haml layout in Rails 3. 1

ruby-on-rails - Delayed_Job,如何为 user_mailer.rb 方法设置优先级

Mysql 日期值()=日期()

ruby-on-rails - 设计 - openid + ldap