我复制并运行了以下代码 Ruby in Programming:实用程序员指南:
a = [ 1, 'cat', 3.14 ]
a[0]
这本书说该程序应该给1
,但它没有,它什么都没有。然后,我尝试了下一个练习:
a = [ 'ant', 'bee', 'cat', 'dog', 'elk' ]
a[0]
a[3]
应该返回"ant"
和"dog"
,但它仍然没有做任何事情。谁能告诉我在哪里搞砸了?
答案 0 :(得分: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。由于它的互动性,学习效果要好得多。
答案 1 :(得分:1)
当您从命令提示符运行p
时,应使用print
或puts
或arraytest.rb
语句查看输出。请按以下更改并运行您的代码。
a = [ 'ant', 'bee', 'cat', 'dog', 'elk' ]
p a[0]
p a[3]