Ruby中布尔数据类型的大小是多少?关于Ruby Forum对此进行了长时间的讨论,但我没有得到最终答案。
另外,我怎样才能找到它的大小。
例如,如果我将它存储在数组中,需要多少内存
a=[true, true]
VS
a=[1,1]
答案 0 :(得分:3)
序列化告诉我们
Marshal.dump([true,true]).length # => 6
Marshal.dump(true).length # => 3
Marshal.dump([1,1]).length # => 8
Marshal.dump(1).length # => 4
我很确定这些值并不代表实际的内存使用量,但[true,true]
似乎比[1,1]
更有效。
答案 1 :(得分:1)
Ruby语言规范没有为任何对象指定任何特定的表示。每个Ruby实现都可以自由选择它想要的任何表示。
另请注意,无法告诉对象的表示是面向对象数据抽象的定义特性。如果 可以告诉Boolean
的大小,Ruby就不会是面向对象的!