Ruby koans - obj.object_id.class错误

时间:2014-11-25 23:14:12

标签: ruby

我正在浏览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>'

提供的代码中是否存在某种错误,或者我做错了什么?

2 个答案:

答案 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