Koans question : Don't understand the answers

Hello,

Im trying to learn ruby by using koans.

Now I have to fill in this part.

def test_some_system_objects_always_have_the_same_id
assert_equal --, false.object_id
assert_equal --, true.object_id
assert_equal --, nil.object_id
end

According to the answers I have to fill in like this :

def test_some_system_objects_always_have_the_same_id
assert_equal 0, false.object_id
assert_equal 2, true.object_id
assert_equal 4, nil.object_id
end

But how can I normally know the id of a object ?

Roelof

Roelof W. wrote in post #1076512:

Hello,

Im trying to learn ruby by using koans.

Now I have to fill in this part.

def test_some_system_objects_always_have_the_same_id
assert_equal --, false.object_id
assert_equal --, true.object_id
assert_equal --, nil.object_id
end

According to the answers I have to fill in like this :

def test_some_system_objects_always_have_the_same_id
assert_equal 0, false.object_id
assert_equal 2, true.object_id
assert_equal 4, nil.object_id
end

But how can I normally know the id of a object ?

puts false.object_id
puts true.object_id
puts nil.object_id

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 09/18/2012 01:23 PM, roelof wrote:

But how can I normally know the id of a object ?

Meditate on the name of the test.

~Chris


Chris Maden, text nerd <URL: http://crism.maden.org/ >
LIVE FREE: vote for Gary Johnson, Libertarian for President.
<URL: http://garyjohnson2012.com/ > <URL: http://lp.org/ >
GnuPG fingerprint: DB08 CF6C 2583 7F55 3BE9 A210 4A51 DBAC 5C5C 3D5E
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://www.enigmail.net/

iQEcBAEBAgAGBQJQWTd7AAoJEEpR26xcXD1eKP0H+wXeq3tj6pjBFCK2qNtheIk0
w4qu/0BlwuMH5BygmY4GzrOPFNnjpRUO+MUnYXiGt36EWX4c8Fvgs+7wF59dIfMy
mFibB4a4ftz/I4tPJ185UNpcQRt/t1DNMx2H8eM5FqBQmQxrcGJSLyztYSIJcFhe
FVzmiO9FM86HVSZnSAzVDzFKkWWB5R/+mzzzuN3KSseoRLLXDrhnHH2CyIfXIPne
d0QeD8swvE+yRAH4hh2Gl4bYooyOQE464GOgjF5dUXlN9u/hyVanBOWC2g1hPCID
5puWm/npzg1EbYVFexiL4jIi91ZOgAU0VDqZegOj4yvCGu+pxjkXohqeuF95iEE=
=JWUI
-----END PGP SIGNATURE-----

As far as i know, ruby use memory location to generate object’s id,
normally any dynamic objects(runtime generate objects) will have
different object_id, for example “foo”.object_id not equal with
“foo”.object_id. But, any object like number, true, false ,nil and
symbol all have fixed object_id


rubyonrailsx
Sent with Sparrow (http://www.sparrowmailapp.com/?sig)

On Sep 19, 4:29am, rubyonrailsx [email protected] wrote:

As far as i know, ruby use memory location to generate object’s id, normally any
dynamic objects(runtime generate objects) will have different object_id, for
example “foo”.object_id not equal with “foo”.object_id. But, any object like
number, true, false ,nil and symbol all have fixed object_id

Although this is an implementation detail you’d be I’ll advised to
rely on - on my rubinius install for example the object id of nil is
26

Fred

Everybody thanks for the explanation.

I have another problem.
On this :

def test_accessing_hashes_with_fetch
hash = { :one => “uno” }
assert_equal “uno”, hash.fetch(:one)
assert_raise("Class: Message: <“key not found”>
—Backtrace— ./about_hashes.rb:27:in fetch' ./about_hashes.rb:27:intest_accessing_hashes_with_fetch’ ") do
hash.fetch(:doesnt_exist)
end

I get always a syntax error.

How to solve this one?

Roelof

Op woensdag 19 september 2012 05:29:59 UTC+2 schreef cming xu het
volgende: