2013-03-19 100 views
0

在Ruby中,假设我们有一个2维数组,这是为什么语法罚款:红宝石:二维数组语法

array.each do |x| 
    x.each do |y| 
    puts y 
    end 
end 

但是,这并不:

array.each{|x|.each{|y| puts y}} 

任何想法?由于

回答

4

这应该是罚款array.each{|x| x.each{|y| puts y}}

你忘了提及X第一。

I.e. .应该是左侧关联运营商。如果你注意到左侧 - 这是一个错误。

+0

啊,的确,也许这就是他错过的。我以为他在思考“为什么语法不符合我的想法”? :) – 2013-03-19 11:46:44

+0

是的,我已经把我的答案后才意识到。更新一下。 – 2013-03-19 11:48:06

+0

谢谢@ denis-bu! – Pensierinmusica 2013-03-19 11:49:42

0

如果您用{...}仔细地更换do...end您会发现第二个表单与第一个表单的工作方式相同。但是puts array完成了这整个双循环相同的事情。

如果我可以提供一些礼貌的元建议,今天你的两个Ruby问题看起来像你可能被要求用一种你不认识的语言做一些事情,并且感到沮丧。这是可以理解的。但好消息是,与许多其他语言相比,Ruby只是构建在很少的几个部分上。如果你花一点时间熟悉Array和Hash,那么以后你会发现它更加平滑。

+0

嗨格伦,谢谢你的建议! :) – Pensierinmusica 2013-03-19 22:48:28