查看: 3992|回复: 21

关于实例的奇怪问题

  [复制链接]

八云紫的式神<

梦石
0
星屑
828
在线时间
1260 小时
注册时间
2008-1-1
回帖
3889

烫烫烫

发表于 2008-11-16 03:45:50 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
如果把一个实例赋值或克隆(.clone/.dup)到另一个变量,改变其中一个,有的类的实例另一个会随着改变(如:RPG::MapInfo)
有的类的实例不会随着改变(如:整数类)

更为奇怪的是,有的类某些方法的执行会两个变量都改变,另一些却不会
a = [1]
b = a
b[0] += 1
p a => 2
但是
a = [1]
b = a
b.push 1
p a => [1]
请问这是为什么
版务信息:本贴由楼主自主结贴~
rm for linux(wine)制作中,期待夏娜SAMA能实现到webrm上
头像被屏蔽
梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-7-8
回帖
433
发表于 2008-11-16 03:48:55 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

八云紫的式神<

梦石
0
星屑
828
在线时间
1260 小时
注册时间
2008-1-1
回帖
3889

烫烫烫

 楼主| 发表于 2008-11-16 03:49:52 | 显示全部楼层
以下引用kissye于2008-11-15 19:48:55的发言:

p(obj, [obj2, ...])
将 obj 以人类可读的形式输出。相当于下面的代码(参看 Object#inspect):
print obj.inspect, "\n", obj2.inspect, "\n", ...
在 Ruby 中,原本是标准的输出,但是在RGSS中重新定义了此方法,改成显示对话窗口。
返回 nil。


以上引自帮助手册
def inspect
end

所以?
rm for linux(wine)制作中,期待夏娜SAMA能实现到webrm上
回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-7-8
回帖
433
发表于 2008-11-16 03:50:59 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

八云紫的式神<

梦石
0
星屑
828
在线时间
1260 小时
注册时间
2008-1-1
回帖
3889

烫烫烫

 楼主| 发表于 2008-11-16 03:52:32 | 显示全部楼层
print [Viewport.new(1,2,3,4),Color.new(1,2,3,4)]
=>
#<Viewport:0x4cfbd30>(1.000000, 2.000000, 3.000000, 4.000000)

这可没inspect
rm for linux(wine)制作中,期待夏娜SAMA能实现到webrm上
回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-7-8
回帖
433
发表于 2008-11-16 03:56:45 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
回帖
2407

第1届Title华丽大赛新人奖

发表于 2008-11-16 03:57:31 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

八云紫的式神<

梦石
0
星屑
828
在线时间
1260 小时
注册时间
2008-1-1
回帖
3889

烫烫烫

 楼主| 发表于 2008-11-16 03:57:33 | 显示全部楼层
看好我用的是print
print不执行inspect的
以下引用kissye于2008-11-15 19:48:55的发言:
p(obj, [obj2, ...])
将 obj 以人类可读的形式输出。相当于下面的代码(参看 Object#inspect):
print obj.inspect, "\n", obj2.inspect, "\n", ...
在 Ruby 中,原本是标准的输出,但是在RGSS中重新定义了此方法,改成显示对话窗口。
返回 nil。

rm for linux(wine)制作中,期待夏娜SAMA能实现到webrm上
回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-7-8
回帖
433
发表于 2008-11-16 04:05:49 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

八云紫的式神<

梦石
0
星屑
828
在线时间
1260 小时
注册时间
2008-1-1
回帖
3889

烫烫烫

 楼主| 发表于 2008-11-16 04:14:38 | 显示全部楼层
p a相当于print a.inspect
所以print a不会执行inspect
rm for linux(wine)制作中,期待夏娜SAMA能实现到webrm上
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部