2014-08-31 84 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并开始玩弄它,并且您应该能够通过实验回答大多数问题。