新手问题 发现一个问题,想请教请 Ruby 中 '::' 和 '.' 这两个有什么关系?

yirolhao · 发布于 2016年12月27日 · 最后由 easonlovewan 回复于 2016年12月30日 · 745 次阅读
28450

比如,我写一个类

class MyClass
  def self.yourname
    "bala"
  end  
end

MyClass::yourname
MyClass.yourname
#都可以访问,调用那个方法

如果类里面定义一个常量,'.'不适用,貌似只能调用方法。 这两兄弟怎么回事?

共收到 6 条回复
28450

好的,去看看。

26688

看了一下,简单来说就是

  • 区别很小,当你像这样调用一个class里的method时,::.没有区别,只是审美不同,Foo::Bar::open可能比Foo::Bar.open这样看起来更美观
  • 但是你可以用::访问一个常量,而.不能
96

看看最佳实践吧,上面有介绍

17671

建议:调用方法时用.,不建议用::, 因为通常情况下::是用来调用一个常量的

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册