ruby – class vs Class.new,module vs Module.new
发布时间:2020-12-16 23:15:58 所属栏目:百科 来源:网络整理
导读:class和Class.new和class之间有什么区别? module和Module.new? 我知道: Class.new/Module.new创建一个匿名类/模块.当我们第一次将它分配给常量时,它将成为该类/模块的名称. class / module自动执行此操作. 当我们想要继承时,我们可以传递一个参数:Class.
class和Class.new&和class之间有什么区别? module和Module.new?
我知道: > Class.new/Module.new创建一个匿名类/模块.当我们第一次将它分配给常量时,它将成为该类/模块的名称. class / module自动执行此操作. 我错过了什么? 解决方法
您在class关键字和
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 与关键字模块和 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |