我正在浏览Ruby Koans,并且我在on_objects.rb中的test_every_object_has_an_id方法上挂了。提供的代码如下所示:
def test_every_object_has_an_id
obj = Object.new
assert_equal __, obj.object_id.class
end
我知道答案是Fixnum,但是,每当我运行path_to_enlightenment.rb时,都会收到以下错误消息:
custom_require.rb:36:in `require':about_objects.rb:50: syntax error, unexpected $end, expecting keyword_end (SyntaxError) from rubygems/custom_require.rb:36:in `require'
from path_to_enlightenment.rb:7:in `<main>'
提供的代码中是否存在某种错误,或者我做错了什么?
答案 0 :(得分:1)
end
关键字您文件中的其他位置缺少end
个关键字。在找到预期的关键字之前,某些文件已到达源文件的末尾。错误清楚地告诉你:
custom_require.rb:36:in `require':about_objects.rb:50: syntax error, unexpected $end, expecting keyword_end (SyntaxError) from rubygems/custom_require.rb:36:in `require' from path_to_enlightenment.rb:7:in `<main>'
检查指定文件的第7,36和50行。这是你需要解决的问题,与以下事实无关:
Object.new.object_id.class
#=> Fixnum
答案 1 :(得分:0)
它不会问你是哪一个类,它会问Fixnum类是什么。所以答案必须是对象
>> Object.new.object_id.class.is_a? Fixnum
#=> false
>> Object.new.object_id.class.is_a? Object
#=> true