0
當創建Rails應用程序,存在config.ru
文件中的一行:爲什麼我們需要雙重冒號操作符在文件中的config.ru在Rails應用程序中?
require ::File.expand_path('../config/environment', __FILE__)
你能不能解釋一下,爲什麼我們需要::File
並不僅僅是File
?將require File.expand_path
工作?
當創建Rails應用程序,存在config.ru
文件中的一行:爲什麼我們需要雙重冒號操作符在文件中的config.ru在Rails應用程序中?
require ::File.expand_path('../config/environment', __FILE__)
你能不能解釋一下,爲什麼我們需要::File
並不僅僅是File
?將require File.expand_path
工作?
::
開頭代表主名稱空間。假設當前環境在模塊A
內。如果你只有File
,那麼它將首先查找A::File
,並且只有當這個常量不存在時纔會在主名稱空間中查找File
。另一方面,::File
在主名稱空間中引用File
,而不管是否存在A::File
等。
我明白'::'運算符是什麼。問題是關於特定的用法。我們是否需要它在'config.ru'中的'File'前面? 'File'與'File'相比有多不同? –