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

Project1

 找回密码
 注册会员
搜索
楼主: zh99998
打印 上一主题 下一主题

问几个涉及到Ruby底层的问题……

 关闭 [复制链接]

Lv2.观梦者 (管理员)

八云紫的式神

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

烫烫烫

21
 楼主| 发表于 2009-3-17 21:09:27 | 只看该作者
以下引用火焰猫燐于2009-3-17 13:06:25的发言:
$a = A.new

这句话有问题。

要使用 $a ,就必须先赋值 $a, 但是这里的 $a 的赋值明显的要比 A 的实例化要后一步才执行。 即使能调用 $a ,也只能读出 nil 罢了。


那么应该是说,读出A.new,就是$a代表的那个实例,所以有没有被赋值都无所谓
rm for linux(wine)制作中,期待夏娜SAMA能实现到webrm上
回复 支持 反对

使用道具 举报

Lv2.观梦者

神隐的主犯

梦石
0
星屑
268
在线时间
271 小时
注册时间
2008-2-22
帖子
7691

贵宾

22
发表于 2009-3-17 21:11:51 | 只看该作者
以下引用zh99998于2009-3-17 13:09:27的发言:

那么应该是说,读出A.new,就是$a代表的那个实例,所以有没有被赋值都无所谓


怎么说,反正是调用不了 $a 。使用匿名类的话,没有什么意义。

《天空之城 —— 破碎的命运》
回复 支持 反对

使用道具 举报

Lv2.观梦者 (管理员)

八云紫的式神

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

烫烫烫

23
 楼主| 发表于 2009-3-17 21:15:32 | 只看该作者
要获取的是那个【实例】,就是【#<A:0x********>】至于匿名问题,只要能引用到了随便抓个变量给赋值就可以了
rm for linux(wine)制作中,期待夏娜SAMA能实现到webrm上
回复 支持 反对

使用道具 举报

Lv2.观梦者

神隐的主犯

梦石
0
星屑
268
在线时间
271 小时
注册时间
2008-2-22
帖子
7691

贵宾

24
发表于 2009-3-17 21:16:30 | 只看该作者
以下引用zh99998于2009-3-17 13:15:32的发言:

要获取的是那个【实例】,就是【#<A:0x********>】至于匿名问题,只要能引用到了随便抓个变量给赋值就可以了


都说了,按你的写法, 获取不了。

换个写法才可以。

《天空之城 —— 破碎的命运》
回复 支持 反对

使用道具 举报

Lv2.观梦者 (管理员)

八云紫的式神

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

烫烫烫

25
 楼主| 发表于 2009-3-17 21:18:33 | 只看该作者
那要怎么写呢?
(A是不能更改的,B可以正在写的)
rm for linux(wine)制作中,期待夏娜SAMA能实现到webrm上
回复 支持 反对

使用道具 举报

Lv2.观梦者

神隐的主犯

梦石
0
星屑
268
在线时间
271 小时
注册时间
2008-2-22
帖子
7691

贵宾

26
发表于 2009-3-17 21:19:40 | 只看该作者
以下引用zh99998于2009-3-17 13:18:33的发言:

那要怎么写呢?
(A是不能更改的,B可以正在写的)


A 不能更改,但是 Ruby 的 class 是可以添加属性的,自己添一个去。

《天空之城 —— 破碎的命运》
回复 支持 反对

使用道具 举报

Lv2.观梦者 (管理员)

八云紫的式神

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

烫烫烫

27
 楼主| 发表于 2009-3-17 21:23:21 | 只看该作者
谢……虽然还是不明白……
rm for linux(wine)制作中,期待夏娜SAMA能实现到webrm上
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
1 小时
注册时间
2009-1-12
帖子
68
28
发表于 2009-3-17 21:26:02 | 只看该作者
以下引用zh99998于2009-3-17 13:23:21的发言:

谢……虽然还是不明白……


面向对象的思想哪这么容易理解啊,很抽象的,慢慢学吧。
回复 支持 反对

使用道具 举报

Lv2.观梦者

神隐的主犯

梦石
0
星屑
268
在线时间
271 小时
注册时间
2008-2-22
帖子
7691

贵宾

29
发表于 2009-3-17 21:26:19 | 只看该作者
以下引用zh99998于2009-3-17 13:23:21的发言:

谢……虽然还是不明白……


class A
  def initialize
    @number = 1
  end
end

class A
  attr_accessor :number  
end

p A.new.number

《天空之城 —— 破碎的命运》
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
270
在线时间
1373 小时
注册时间
2005-10-16
帖子
5113

贵宾

30
发表于 2009-3-18 01:40:21 | 只看该作者
以下引用火焰猫燐于2009-3-17 13:26:19的发言:
class A
def initialize
   @number = 1
end
end

class A
attr_accessor :number  
end

p A.new.number

这个当然没问题了,按我的理解,在编译的过程中,就已经把这些对同一个类的各段代码整合到一起了。
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-6-23 11:13

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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