查看: 2085|回复: 3

[已经解决] 可以用生成一个Class类的实例的方法来定义一个新类吗?

[复制链接]
梦石
0
星屑
162
在线时间
79 小时
注册时间
2012-8-16
回帖
32
发表于 2017-6-15 18:25:25 | 显示全部楼层 |阅读模式

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

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

×
虽然这个问题可能没什么凤凰卵用,但觉得很有趣所以想问问
梦石
0
星屑
4623
在线时间
1207 小时
注册时间
2016-4-7
回帖
944

开拓者

发表于 2017-6-15 20:11:27 | 显示全部楼层
本帖最后由 shitake 于 2017-6-15 20:13 编辑

a = Class.new()
a.class_eval do
  def x
    @x
  end
  def initialize(x)
    @x = x
  end
end

aa = a.new(233)
aa.x
# => 233
附庸的附庸不是我的附庸,女儿的女儿还是我的女儿。CK2沉迷ing
回复

使用道具 举报

梦石
0
星屑
9687
在线时间
3224 小时
注册时间
2011-3-24
回帖
616

开拓者

发表于 2017-6-15 22:24:39 | 显示全部楼层
我是这么想的:
类的命名和常量的命名规则是一样的
我认为它们有某种联系
那就是
class 类名 ~ end
这样来定义的类
也许等同于
类名 = Class.new do ~ end
也就是说我觉得 定义一个类 就是生成Class对象 然后类名就是一个常量名 这个常量就是这个Class对象
[pre lang="ruby"]KLAZ = Class.new do
    def mtd
        puts 'test'
    end
end
class KLAZ
    def mtd2
        mtd
    end
end

KLAZ.new.mtd2 #====> test[/pre]
>>→Lanza Games 2020←<<
Lanza Schneider
浪子心,孤星梦永远流浪……
~不会放弃,我的精力永远充沛~
>>>>>Lanza Adventure<<<<<
>>>>>Lanza的新年派对!<<<<<
>>>>>Lanza的口袋心脏病!<<<<<
回复

使用道具 举报

梦石
1
星屑
24088
在线时间
3339 小时
注册时间
2011-7-8
回帖
3862

开拓者

发表于 2017-6-16 06:26:47 | 显示全部楼层
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部