0
我有一個這樣的類。我將命令定義爲內部名稱間距的模塊(因爲它響應來自播放器的命令並且定期添加和刪除命令)。但是,Commands中的方法無法看到@environments。我該如何解決?命名空間模塊內部類:實例變量作用域
class Player
attr_accessor :environment
module Commands
def self.look *args
@environment.describe
end
def self.exit *args
Kernel.exit(true)
end
def self.method_missing *args
puts "What?"
end
end
def respond arg
cmd = arg.split(" ")
Commands.send(cmd[0], cmd)
end
end
有沒有辦法對我來說,保持保持命令模塊中的能力一個單獨的命名空間(它是如何在模塊中)? –
@JonathanHoward它已經在一個單獨的命名空間中:'Player :: Commands'。頂層方法在'Player'中。儘管我沒有看到使用模塊的很多價值,除非您計劃與其他課程共享它,或者至少將其移植到它自己的源文件中。 – zetetic