只显示主题贴
module Has_inner_class
def init_child obj
class<<obj
def init_outer outer
@__outer=outer
self
end
end
obj.init_outer self
end
end
class Aaa
include Has_inner_class
attr_accessor :name
def put()
aa=init_child("hello")
class<&l ...
- 进入论坛 Ruby 版
baryon 写道class Aaa
Name = [] #attr_accessor :name
def get_name
Name[0]
end
def put(name)
Name[0]=name
aa="hello"
class<<aa
def print_hello
STDOUT.puts self+Name[0]
end
end
aa.prin ...
- 进入论坛 Ruby 版
xiaoxizhen 写道你只是定义了一个变量,然后给变量追加了一个方法。动态追加方法, def和define_method的区别可以参考这边文章。http://ola-bini.blogspot.com/2008/05/dynamically-created-methods-in-ruby.html这里还有一篇中文的翻译。http://www.gotopeking.com/boards/1/topics/show/65对于你的需求,直接把外部的引用传过去就是最简单的方法了。如果你不相信我, rails里面有类似的lib\action_controller\routing\route_set. ...
- 进入论坛 Ruby 版
superxielei 写道昨天晚上回家翻书看了看
class<<AnObj
这个是扩展了AnObj,并不是一个java思想中的内部类。
内部类应该是使用::实现的,这样才是内部类,他就可以直接使用超类的方法了。
看来需要另外一个思想来实现LZ需要的功能!
我称为内部类是因为这个类只是随着外面这个类的instance存在而存在的。
- 进入论坛 Ruby 版
xiaoxizhen 写道edge_hh 写道
那有许多时候会挺不方便的啊。
要是在一个方法内定义一个class<<AnObj.
实际上这个obj应该默认包含外部object的一个引用的啊。只有外部的object存在,它才会存在
你这完全是照搬java的概念。
你定义的就是singleon方法, 放到哪里不行呀。
我说了,我的例子只是为了举例用的。
当然是我实际上有这个需求我才这么问的。
- 进入论坛 Ruby 版
xiaoxizhen 写道ruby 没有内部类的概念呀。即使声明在内部的, 也只能按普通类的方式!那有许多时候会挺不方便的啊。要是在一个方法内定义一个class<<AnObj.实际上这个obj应该默认包含外部object的一个引用的啊。只有外部的object存在,它才会存在
- 进入论坛 Ruby 版
phoenix520 写道
class Aaa
attr_accessor :name
def get_name
@name
end
def put(name)
self.name=name
aa="hello"
class<<aa
def print_hello(outer_class)
STDOUT.puts ...
- 进入论坛 Ruby 版
liuqiang 写道class Aaa
attr_accessor :name
def Aaa.get_name()
@@name
end
def put(name)
@@name=name
aa="hello"
class<<aa
def print_hello
STDOUT.puts self + Aaa.get_name
end
end
aa.print_hello
end
end
z=Aaa.new
z.put "pp"
自个看吧
谢谢楼上的解答。
但是,我需要访问的是 ...
- 进入论坛 Ruby 版
class Aaa
attr_accessor :name
def get_name
@name
end
def put(name)
@name=name
aa="hello"
class<<aa
def print_hello
STDOUT.puts self+Aaa::get_name
end
end
...
- 进入论坛 Ruby 版
- 浏览: 8681 次

- 详细资料
搜索本博客
最新评论
-
DRB时mixin的疑惑,是个 ...
所谓的远程方法的调用其实就是对DRbObject的方法调用,真正的调用远程方法是 ...
-- by lllyq -
工作之余,想做一些技术方 ...
可以搞一个 搜索引擎优化;弄一个网站,挣一点小钱
-- by 锁上门睡觉 -
工作之余,想做一些技术方 ...
gigix 写道maxiaoxia 写道想了想,还是网络比较靠谱,也很有用,我的 ...
-- by maxiaoxia -
工作之余,想做一些技术方 ...
开发人工智能也挺好的哦 不过那个需要大量的人力和时间 你还不如在工作之余自己开 ...
-- by Imagination_Fly -
工作之余,想做一些技术方 ...
maxiaoxia 写道想了想,还是网络比较靠谱,也很有用,我的兴趣是游戏,不过 ...
-- by gigix






评论排行榜