時々、次のようなコードが表示されます。
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::Baseinclude ::Elite::App
クラス/モジュールの前に何をし::ますか? :: クラス/モジュールの名前空間 (モジュール名) を消去しますか? 動作しますが、class Store < Applicationこれは動作しません: class Store < ::Application. 違いを教えてください...ありがとう!