2012-07-26 42 views
0

在一個非常簡單的程序試圖使用「每個」我得到的錯誤:sum.rb:16:未定義的方法`每個'的#(NoMethodError)我得到一個「無方法錯誤」使用每個讀取矩陣

我使用「each」各種方式得到相同的錯誤:下面顯示的是直接從ruby-doc.org的Class:Matrix中複製的。

# create State database using matrix 
require 'matrix' 

State=Matrix[ [3,1,4,4,6,2,8,12,6,2], 
     [6,2,4,13,25,21,11,22,9,3,], 
     [6,20,27,34,22,14,12,11,2,5], 
     [6,28,17,23,31,18,15,9,18,12], 
     [9,18,11,13,8,27,10,14,24,11], 
     [3,9,7,16,9,15,28,24,29,21], 
     [5,8,4,7,17,14,19,30,33,4], 
     [7,17,23,9,5,9,22,21,12,21,], 
     [7,14,25,22,16,10,19,15,12,11], 
     [5,16,7,3,6,3,9,8,1,5] ] 

State.each { |e| puts e } 

這一定很簡單/明顯,但我無法弄清楚。 (我已經用狀態矩陣做了各種各樣的事情,按預期工作。)

+0

一切工作正常。你使用的是什麼版本的Ruby? – 2012-07-26 16:02:47

+0

安德烈,不幸的是我不能告訴你,因爲大約一年前我安裝了ruby,並且不記得如何獲得該版本。我還發現有些方法可以工作(例如,det,row_size,col_size),而另一些方法則不行(例如元素)。你的評論是否意味着你複製了程序並且沒有問題地運行它? – user918069 2012-07-26 17:11:51

+0

從命令行輸入:ruby -v。 – 2012-07-26 17:13:34

回答

1

Ruby 1.8.7將返回您所看到的問題。 1.8.7中的Matrix對象沒有each方法。

升級到最新版本,1.9.2或1.9.3將解決該問題。

+0

謝謝!謝謝!我從來沒有想過這是一個版本問題。事實上我正在運行1.8.7。謝謝。 – user918069 2012-07-26 18:11:53

相關問題