• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Ruby的部分类

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
1 class Person
2 def hello
3 puts "Hello!"
4 end
5 end
6
7  class Person
8 def goodbye
9 puts "Goodbye!"
10 end
11 end
12
13  #测试
14  p1 = Person.new
15 p1.hello # Hello!
16 p1.goodbye # Goodbye!

 

这个代码也许大家都见过,如果是从高级语言转攻ruby的,可能很奇怪,这样能运行吗?在高级语言中,拿C#举例,这样的代码显然不能运行。

但是这就是Ruby中的部分类的实现。不用借助其他即可实现部分类。而C#中部分类的实现却要借助partial关键字来实现。如下:

1 public partial class Person
2 {
3 public void hello(){}
4 }
5
6 public partial class Person
7 {
8 public void goodbye(){}
9 }

部分类的优点:

1、你可以将部分类写在一个文件或者多个文件中,对类进行扩展。

2、可以重写类的方法

module,也具有此种特性

1 #module扩展
2 module Travel
3 def forward
4 puts "Forward"
5 end
6 end
7
8 module Travel
9 def backward
10 puts "Backward"
11 end
12 end
13
14 puts Travel.instance_methods # backward forward

 


注意:

Ruby的部分类与C#的部分类还有一些差别。

如果是高级语言,编译器会将这几个文件组合起来一起编译。无论在哪里,调用的这个都是同一个类(几个文件组合到一起,编译成的)。

而Ruby是脚本语言,是解释执行的。执行一个部分类,这个部分类的方法就被加载进去,一些还没有执行的,在这里它的方法还不能够直接调用。就想开始的例子,

当程序运行至第一个Person class 结束时,Person类只有hello方法,只有在执行完第二个Person class,Person类才有了goodbye方法。

在我们使用的过程一定要注意这一点,通常会将部分类放到配置文件中,在程序执行时就全部加载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
ruby中=是什么意思发布时间:2022-07-14
下一篇:
cocoapods更新失败badresponseNotFound404(http://ruby.taobao.org/specs.4.8.gz)发布时间:2022-07-14
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap