我正在研究一個相當簡單的DSL,並希望更自然地聲明和分配變量。如何創建自然變量分配
GlobalMemory.init {
val1 5
val2 "some string"
}
這是一個運行DSL一個簡單的虛擬機。這適用於此代碼很好
class GlobalMemory
include Singleton
def self.init &blk
GlobalMemory.instance.allocate &blk
end
def method_missing sym,*args, &blk
@segments[sym]=args[0]
end
def allocate &blk
self.instance_eval &blk
end
end
有沒有辦法允許val1=5(and val1 = 5)
?當我嘗試時,method_missing
不會觸發,也不會發生錯誤消息。