我的Ruby Assignment问题

时间:2014-08-31 04:29:28

标签: ruby

我是学习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]最终的价值是什么?
  • 为什么数组的长度(或大小)与构造时的长度(或大小)不同?

1 个答案:

答案 0 :(得分:1)

我不会直接回答这些问题,因为这听起来像是家庭作业,但我会尽力指出你正确的方向。

  1. 查看Ruby Array#[]的文档。更具体地说,看看示例代码中的哪些用法与示例中的用法相匹配,您可能会更好地了解发生了什么。请记住,使用Ruby,您可以使用负索引号从数组的 end 进行索引。

  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

  5. 不要气馁,不要听别人告诉你放弃。这些东西在您刚开始时可能会让人感到困惑,但熟悉在何处查找文档,如何使用命令行工具以及如何进行实验将使探索和发现代码正在执行的操作变得更加容易,何时,以及这是为什么。

    如果您需要尝试弄清楚代码中发生了什么,只需在终端中打开irb并开始使用它,您应该能够通过以下方式回答大部分问题:实验