赞 | 23 |
VIP | 207 |
好人卡 | 31 |
积分 | 31 |
经验 | 48797 |
最后登录 | 2024-5-11 |
在线时间 | 1535 小时 |
Lv3.寻梦者 孤独守望
- 梦石
- 0
- 星屑
- 3132
- 在线时间
- 1535 小时
- 注册时间
- 2006-10-16
- 帖子
- 4321
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
- # Float
- a = 3.0/5.0
- b = 3.0/5.0
- c = b
- p a.__id__,b.__id__,c.__id__
- p a - b == 0,a == b
- # Fixnum
- a = 10/5
- b = 10/5
- c = b
- p a.__id__,b.__id__,c.__id__
- p a - b == 0,a == b
复制代码 代码如上。发现浮点数是指针型,每次即使值相同也不返回同一个对象,而Fixnum则全然不同。
通过解析法亦可发现,在Ruby的Marshalling过程中,Float占用一个引用位置,而Fixnum则不占用。
求解。如能说明Fixnum(value class)的工作原理更佳。
总括:为什么Float是引用类,而Fixnum是值类? |
|