【发布时间】:2016-11-05 16:08:50
【问题描述】:
我是一名初级 Ruby 程序员。我目前正试图找出我正在编写的代码有什么问题。基本上,我有一个数组数组,我试图遍历它并将每个数组作为一个字符串。但无论我做什么,除非我长手,否则没有任何效果,我真的不想这样做。 首先,这是我的数组:
array1 = [["Mittens", "is", "a", "cat"], ["Lily", "is", "a", "dog"], ["Alex", "is", "a", "turtle"]]
我想把结果放在上面,结果是这样的:
Mittens is a cat
Lily is a dog
Alex is a turtle
我已经尝试使用这个或它的变体几个小时了:
array1.each do |sub_array|
sub_array.join(" ")
puts sub_array
end
但每当我尝试它时,它最终看起来像这样:
Mittens
is
a
cat
Lily
is
a
dog
Alex
is
a
turtle
现在,如果我将“puts”更改为“print”,我将得到与之前相同的三个数组。因此,如果没有完成放弃并在我的程序中硬编码三个“放置”语句,我在这里缺少什么?我知道这一定是一件非常简单的事情,我想编写一个循环函数来轻松实现这一点。感谢您的关注!
【问题讨论】:
-
join这样的方法不会改变原始对象。方法基本上不可能将对象从一个类更改为另一个类,因此 String 永远不会神奇地变成 Array。更改类的唯一方法是通过 assignment 创建一个新的变量引用,通常使用=。 Ruby 的方法在返回的内容与变异的内容方面可能有点棘手,因此请始终保持文档打开并验证您进行的每个调用。阅读手册并不丢人。