设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 3325|回复: 21
打印 上一主题 下一主题

关于实例的奇怪问题

 关闭 [复制链接]

Lv2.观梦者 (管理员)

八云紫的式神

梦石
0
星屑
619
在线时间
1243 小时
注册时间
2008-1-1
帖子
4282

烫烫烫

跳转到指定楼层
1
发表于 2008-11-16 03:45:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
如果把一个实例赋值或克隆(.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上
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-7-8
帖子
466
2
发表于 2008-11-16 03:48:55 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv2.观梦者 (管理员)

八云紫的式神

梦石
0
星屑
619
在线时间
1243 小时
注册时间
2008-1-1
帖子
4282

烫烫烫

3
 楼主| 发表于 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上
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-7-8
帖子
466
4
发表于 2008-11-16 03:50:59 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv2.观梦者 (管理员)

八云紫的式神

梦石
0
星屑
619
在线时间
1243 小时
注册时间
2008-1-1
帖子
4282

烫烫烫

5
 楼主| 发表于 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上
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-7-8
帖子
466
6
发表于 2008-11-16 03:56:45 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

7
发表于 2008-11-16 03:57:31 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv2.观梦者 (管理员)

八云紫的式神

梦石
0
星屑
619
在线时间
1243 小时
注册时间
2008-1-1
帖子
4282

烫烫烫

8
 楼主| 发表于 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上
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-7-8
帖子
466
9
发表于 2008-11-16 04:05:49 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv2.观梦者 (管理员)

八云紫的式神

梦石
0
星屑
619
在线时间
1243 小时
注册时间
2008-1-1
帖子
4282

烫烫烫

10
 楼主| 发表于 2008-11-16 04:14:38 | 只看该作者
p a相当于print a.inspect
所以print a不会执行inspect
rm for linux(wine)制作中,期待夏娜SAMA能实现到webrm上
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-1-8 04:59

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表