Project1

标题: 关于ruby的对象化 [打印本页]

作者: 沉影不器    时间: 2008-8-10 19:38
提示: 作者被禁止或删除 内容自动屏蔽
作者: 关重7    时间: 2008-8-10 19:44
看不懂,不过沙发以下
作者: 沉影不器    时间: 2008-8-10 19:51
提示: 作者被禁止或删除 内容自动屏蔽
作者: yangff    时间: 2008-8-10 19:53
整形的父类是:
Numeric
Numeric的父类是:
Object
当然有
object_id

但是!
他并没有继承所有方法俄。
String.to_ary就会出错
作者: dbshy    时间: 2008-8-10 19:54
ruby是完全对象,连INTEGER都是

作者: yangff    时间: 2008-8-10 19:55
面向对象?
作者: 沉影不器    时间: 2008-8-10 19:55
提示: 作者被禁止或删除 内容自动屏蔽
作者: yangff    时间: 2008-8-10 20:00
以下引用沉影不器于2008-8-10 11:55:40的发言:

回楼上,我想说的是,如果所有整形变量都成为真正意义上的对象,那么每个整形变量都必须分配内存


以下4个不同的变量,如果真正对象化,那么就得有4个内存地址
a = 1
b = 1
c = 1
d = 1

因该是的。。
Integer本身就是一个对象
作者: 沉影不器    时间: 2008-8-10 20:01
提示: 作者被禁止或删除 内容自动屏蔽
作者: yangff    时间: 2008-8-10 20:12
以下引用沉影不器于2008-8-10 12:01:40的发言:


以下引用yangff于2008-8-10 12:00:11的发言:


以下引用沉影不器于2008-8-10 11:55:40的发言:

回楼上,我想说的是,如果所有整形变量都成为真正意义上的对象,那么每个整形变量都必须分配内存


以下4个不同的变量,如果真正对象化,那么就得有4个内存地址
a = 1
b = 1
c = 1
d = 1


因该是的。。
Integer本身就是一个对象


错,4个变量的object_id完全一致

酱紫?!{/fd}
作者: IamI    时间: 2008-8-10 20:54
我可以这样说吗?
abcd都是一个指向整数1的句柄。= =
所以……
作者: ONEWateR    时间: 2008-8-10 20:56
完全看不懂 - -||

作者: 雷欧纳德    时间: 2008-8-10 22:25
参考ruby的说明手册,ruby中任何数据都是一个对象,连一个变量都是
作者: link006007    时间: 2008-8-10 23:07
lz举例的都是Fixnum, 而 Fixnum没有定义new方法, clone 函数直接就是抛异常
参考object 的clone 源码 和 numeric.c
并且 如果Fixnum的数字相同,则写下一个Fixnum的整数实际上会是同一个对象,
这样, a, b, c 实际同是一个对象
对于 Bignum 和 Float 就不会有这种情况

至于object_id  符号, 类似Fixnum这些常量的, 和一般的ruby对象 返回方法是不同的
作者: 沉影不器    时间: 2008-8-11 05:43
提示: 作者被禁止或删除 内容自动屏蔽
作者: 灼眼的夏娜    时间: 2008-8-11 16:17
ruby语言本来就完全面向对象,至于Fixnum...
Fixnum直接和value相关的 。。。  = =




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1