0

我复制并运行了以下代码,摘自《Ruby 编程:实用程序员指南》一书:

a = [ 1, 'cat', 3.14 ]
a[0]

书上说该程序应该提供1,但它没有,它什么也没提供。然后,我尝试了下一个练习:

a = [ 'ant', 'bee', 'cat', 'dog', 'elk' ]
a[0]
a[3]

应该返回"ant"并且"dog",但它仍然什么都不做。谁能告诉我我在哪里搞砸了?

4

2 回答 2

3

尝试将这些行输入到 IRB 会话中。你会看到承诺的结果。如果你想从一个文件中运行它,那么你必须做一些不同的事情。

a[0]

这将评估表达式。IRB 会显示它的值,但从文件运行它什么也不做。您必须将其显式打印到标准输出。像这样的东西:

puts a[0]

更新

这是一个示例 IRB 会话

% irb
1.9.3p125 :001 > a = [ 'ant', 'bee', 'cat', 'dog', 'elk' ]
 => ["ant", "bee", "cat", "dog", "elk"]
1.9.3p125 :002 > a[0]
 => "ant"
1.9.3p125 :003 > a[3]
 => "dog"

我建议你坚持IRB。由于它的交互性,它更适合学习。

于 2013-07-11T19:45:21.747 回答
1

当您将从命令提示符运行时,您应该使用porprintputs语句来查看输出。arraytest.rb进行如下更改并运行您的代码。

a = [ 'ant', 'bee', 'cat', 'dog', 'elk' ]
p a[0]
p a[3]
于 2013-07-11T19:43:08.603 回答