2016-03-06 75 views
0

,我有以下對象的字符串,我想隱藏的attr_accessor中:的a_list和:b_list,下面產生代表對象ID

<Namespace::SomeObject:0x00000002674538 @a_list={}, @b_list={}> 

我知道我應該重寫inspect方法,如:

def inspect 
    "#<{self.class}: >" 
end 

如何獲取ID 0x00000002674538

+0

什麼是列出的實例變量'@ a_list','@ b_list'。 (它們是否被綁定)attr訪問器是無關緊要的。 – sawa

回答

2
"%#016x" % (object_id << 1) 

"%#016x" % (object_id * 2) 
+1

謝謝sawa,這個工程。 :) –

+1

_Sidenote:_這隻能在64位平臺上按預期工作。與紅寶石打印相比,它現在在32位上失敗。在128位上它會在不久的將來失敗[可能]。所以,請注意按原樣使用。 – mudasobwa

+1

@sawa:這是如何工作的,爲什麼它在32位平臺上失敗,爲什麼它會在128位平臺上失敗? – guitarman