打印Ruby数组的内存地址

时间:2014-08-27 06:46:03

标签: ruby arrays pointers memory

irb> class A; end
=> nil
irb> a=A.new
=> "#<A:0x3094638>"
irb> a.inspect
=> "#<A:0x3094638>"
irb> b=[]
=> []
irb> b.inspect
=> "[]"

如何获取数组对象的内存地址?

1 个答案:

答案 0 :(得分:4)

使用方法Object#object_id

  

返回 obj 的整数标识符。对于给定对象的所有id调用都将返回相同的数字,并且没有两个活动对象将共享id。 #object_id是与:name表示法不同的概念,它返回名称的符号ID。

示例: -

Arup-iMac:arup_ruby $ irb
2.1.2 :001 > s = "I am a string"
 => "I am a string" 
2.1.2 :002 > obj_id = s.object_id
 => 2156122060 
2.1.2 :003 > ObjectSpace._id2ref obj_id
 => "I am a string" 
2.1.2 :004 >