使用现有常量命名Ruby方法
发布时间:2020-12-17 03:00:16 所属栏目:百科 来源:网络整理
导读:module Foo def self.bar "Module.bar" endenddef Foo "main.Foo"endputs Foo # Fooputs Foo.bar # Module.barputs Foo() # main.Fooputs Foo.class # Module 为什么模块Foo和方法Foo可以在同一名称空间中共存?为什么Foo方法的定义不会覆盖模块? 解决方法
module Foo def self.bar "Module.bar" end end def Foo "main.Foo" end puts Foo # Foo puts Foo.bar # Module.bar puts Foo() # main.Foo puts Foo.class # Module 为什么模块Foo和方法Foo可以在同一名称空间中共存?为什么Foo方法的定义不会覆盖模块? 解决方法
它们不存在于同一名称空间中.常量和方法位于不同的命名空间中.这就是他们共存的方式.语言在常量命名空间中查找,除非你使用方法调用parens,它明确地说“这应该是一个方法”.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |