Ruby中布尔值的大小是多少?

时间:2014-10-20 02:43:19

标签: ruby

Ruby中布尔数据类型的大小是多少?关于Ruby Forum对此进行了长时间的讨论,但我没有得到最终答案。

另外,我怎样才能找到它的大小。

例如,如果我将它存储在数组中,需要多少内存

a=[true, true]

VS

a=[1,1]

2 个答案:

答案 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就不会是面向对象的!