2016-01-25 28 views
1

隨着puts命令下面我輸出的我的可變new_array及其內容在索引0處,這也是我已經存儲在一個名爲first element變量的內容。然後輸出first_element這個類,我得到一個返回類nil。有人可以解釋爲什麼這是嗎?另外,有沒有更好的方法來做到這一點?數組索引0設置爲變量,然後返回零值,紅寶石

謝謝!

new_array = [] 

first_element = new_array[0] 

array = ["1", "2"] 

array.each do |x| 
    new_array << x.to_i 
end 

puts new_array[0] 
puts first_element.class 

輸出

$ruby testing_2.rb 
1 
NilClass 

回答

3

new_array被初始化時,它初始化爲空數組。這意味着它沒有元素。如果您嘗試訪問索引,則嘗試訪問不存在的索引。在Ruby中,這被稱爲nil。

+0

啊我看到你在說什麼。我把它移到每個方法下面,現在它就可以工作。謝謝。 – Jbur43

0

您正在服用空白陣列,其不存在的第一個值,所以它成爲nilNilClass只是nil對象的類名稱。

要讓它不是nil,你需要在你的new_array中加入一些東西,比如["foo","bar",3.14]。然後,first_element"foo",這是String類。