首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ruby元编程超类不继承

ruby元编程超类不继承
EN

Stack Overflow用户
提问于 2013-02-19 20:48:47
回答 1查看 104关注 0票数 1

当我使用数组作为超类创建一个匿名类时,数组方法<<和[]=不会被继承。下面是我的代码

代码语言:javascript
运行
复制
class SubArray < Array
end

sa = SubArray.new
sa << "foo"
puts sa.inspect

sa_meta = Class.new(Array)
sa_meta << "foo"
puts sa_meta.inspect

给出了结果:

代码语言:javascript
运行
复制
["foo"]
lib/so_example1.rb:9:in `<main>': undefined method `<<' for #<Class:0x6b10b8e4> (NoMethodError)

我的ruby版本是:

代码语言:javascript
运行
复制
ruby 1.9.3p194 (2012-04-20 revision 35410) [i386-darwin11.4.2]

如何使用超类动态创建类?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-19 20:50:40

数组方法<<和[]=未被继承

他们当然是!只是别忘了创建一个类的实例。

代码语言:javascript
运行
复制
sa_meta_klass = Class.new(Array)
sa_meta = sa_meta_klass.new
sa_meta << "foo"
puts sa_meta.inspect
# >> ["foo"]
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14957911

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档