時々、次のようなコードが表示されます。
module Elite
module App
def app
'run app'
end
end
module Base
def base
'base module'
end
end
class Application
include Elite::Base #Include variant A
include ::Elite::App #Include variant B
def initialize(str=nil)
puts "Initialized with #{str}"
puts "Is respond to base?: #{base if self.respond_to?(:base)}"
puts "Is respond to app?: #{app if self.respond_to?(:app)}"
end
end
class Store < ::Elite::Application
def initialize(str=nil)
super #Goes to Application init
end
end
end
elite = Elite::Store.new(:hello)
でも と と と の何が違うのかわからないコーディングclass Store < ::Elite::Application
スタイル
だけなのか、それとも何か違うのかclass Store < Elite::Application
?include Elite::Base
include ::Elite::App
クラス/モジュールの前に何をし::
ますか? :: クラス/モジュールの名前空間 (モジュール名) を消去しますか? 動作しますが、class Store < Application
これは動作しません: class Store < ::Application
. 違いを教えてください...ありがとう!