Ruby 两个冒号

xiaoronglv · 2012年11月20日 · 最后由 devinhuang 回复于 2017年03月13日 · 9512 次阅读

两个冒号是什么意思啊,求官方文档。

namespace,官方文档不知道,下面这个是 rubymonk 上的一段相关讲解: http://rubymonk.com/learning/books/1/chapters/35-modules/lessons/80-modules-as-namespaces

无语 ...

不过还是解释下吧。你可以称其为 调用分隔符, 和方法调用符号 . 一样的。只不过,:: 习惯上用于引用一个常量,而 . 习惯上用于引用一个方法。

其实我惊讶的是你的第一句话... 一直在使用 难道你真的可以不了解你的代码么?那肿么写代码啊?难以想象

#3 楼 @sailtsao 看了 code_campo 的源码,

每天我都抽时间重复敲一些 code_campo 的代码。

敲过,但不理解

#4 楼 @xiaoronglv 哦,那其实应该找一些 ruby 语法的入门书然后看看元编程再看看源码吧,否则的话想理解完整源码很难的。由于我现在还处在熟悉 rails 各个领域的阶段,所以更多的建议我是提不了了。

#1 楼 @scys77 #2 楼 @zw963

感谢两位的回复。刚刚读了这篇文档. http://rubymonk.com/learning/books/1/chapters/35-modules/lessons/80-modules-as-namespaces

图片中的两个冒号应该是 namespace, 不是引用常量吧。

其实双冒号也可以用来调用方法

例如:

class B
  def b
    puts 'hello'
  end
end

B:: new::b  (去掉new前面的空格)
B.new.b

效果是等价的

语法问题还是建议看看书吧。自己不学习而仅靠问问题成为绝顶高手的人,我没见过

#8 楼 @fsword

嗯。感谢您的建议。

😄

#8 楼 @fsword +1

@xiaoronglv , 是你自己说不明白 所以然, 所以告诉你所以然嘛。

你说的 namespace, 是知其然, 不要孤立的看问题。

11 楼 已删除

看了上面的回答,感觉前辈们的心态都很浮躁,有的还甚至装逼,这样子国人如何共同进步?! 下面是我整理的两个我认为比较靠谱的回答。

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