2014-08-31 80 views
-4

我是新來學習Ruby,我從我的老師那裏得到了一份我正在努力理解的作業。 這是問題。請看下面的代碼:問題與我的紅寶石作業

ary = Array.new(7, "--day") 
ary[2] = "Tuesday" 
ary[4] = "Thursday" 
ary[7] = "Sunday" 
ary[-1] = "Saturday" 
puts ary[7] 
puts ary[-4] 
puts ary[-6, 2] 
puts ary[2] = ary[7][-3,3] 
puts ary.length 
  • 爲什麼這個代碼產生6行輸出?多餘的線從哪裏來?
  • ary [2]最後的價值是什麼?
  • 爲什麼數組的長度(或大小)與我們構建數組的時間不同?
+2

嘗試在每行之後放置一個'p ary',它應該澄清一點... – 2014-08-31 04:54:23

+1

這是作業,所以我不想說太多。 @ BradWerth的建議很好,閱讀['Array.new'](http://ruby-doc.org/core-2.1.2/Array.html#method-c-new),['Array#[]'](http:// ruby-doc.org/core-2.1.2/Array.html#method-i-5B-5D)和['Array#[] ='](http://ruby-doc.org/core-2.1。 2/Array.html#method-i-5B-5D-3D)文檔也很好。 – 2014-08-31 05:05:18

+0

我在學習Ruby,如果你們能幫助我。這對我很有幫助。感謝 – AnnaWatson 2014-08-31 05:09:24

回答

1

我不會直接回答這些問題,因爲它聽起來像是一項家庭作業,但我會盡力指出您的方向。

  1. 看看Ruby的Array#[]的文檔。更具體地說,看看示例代碼中的哪些用法與示例中的用法相匹配,並且可以更好地瞭解發生了什麼。請記住,通過使用Ruby,您可以使用負索引編號從數組的末尾索引。

  2. 在終端打開irb並運行前5行(全部爲ary[]=行)。然後分別運行每個puts行,看看輸出是什麼。請記住,具有=> something的行是返回值,而不是正在打印的內容。

  3. 看看String#[],並單獨嘗試第9行的不同部分。例如,請參閱ary[7]。然後看看ary[7][-3, 3]做什麼。看看如果你做"Any Random String"[a_number, another_number]會發生什麼。

  4. 在首次創建陣列後,請檢查ary.length。然後運行以下每一行,在每個後續分配後檢查ary.length

不要灰心,不要聽別人告訴你放棄。當你第一次開始時,這些東西可能會讓你感到困惑,但熟悉如何找到文檔,如何使用命令行工具以及如何進行實驗,將會更容易探索和發現你的代碼在做什麼,爲什麼。

如果您需要嘗試弄清楚您的代碼中發生了什麼,只需在您的終端中打開irb並開始玩弄它,並且您應該能夠通過實驗回答大多數問題。