大佬教程收集整理的这篇文章主要介绍了ruby – class vs Class.new,module vs Module.new,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我知道:
> Class.new/Module.new创建一个匿名类/模块.当我们第一次将它分配给常量时,它将成为该类/模块的名称. class / module自动执行此操作.
>当我们想要继承时,我们可以传递一个参数:Class.new(ancestor).当我们没有指定祖先时,它被设置为Object. class使用以下语法:class A<祖先
> Class.new返回一个对象. A级返回nil.模块也是如此.
我错过了什么?
Class::new
之间错过的有趣点是 – Class :: new接受块.因此,当您使用Class :: new创建类对象时,您还可以访问周围的变量.因为块是封闭的.但是,当您使用关键字class创建类时,这是不可能的.因为班级创造了一个不了解外部世界的全新范围.让我举几个例子.
这里我使用关键字class创建一个类:
count = 2 class Foo puts count end # undefined local variable or method `count' for Foo:Class (NameError)
这里使用Class.new:
count = 2 Foo = Class.new do |c| puts count end # >> 2
与关键字模块和Module::new
相同的区别.
以上是大佬教程为你收集整理的ruby – class vs Class.new,module vs Module.new全部内容,希望文章能够帮你解决ruby – class vs Class.new,module vs Module.new所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。