自定義腳本語言引擎開發紀實 -文件依賴與作用域

引入依賴文件

小的內嵌式的功能模塊,一個文件搞定,但如果功能比較多,或者一些好的函數需要沉澱,保存成公共模塊的文件,此時就需要引入依賴文件。
引入模塊語法
文件尋找路徑的方式是基於當前正在運行的目錄爲相對目錄。

import("mm.script") //模塊名爲mm

另一種方式:

import("mm.script" : ui) //模塊名不使用文件名,重命名爲ui

文件中定義的全局變量的作用域

約定 文件模塊中的全局變量的作用域,默認是隻文件內可以見。如果別的文件模塊中要訪問,需要明確的使用 模塊名:變量名的方式。
通模塊文件中定義的函數,函數中調用的全局變量,只會使用函數所在模塊中定義的變量。
這樣的約定,是方式多文件,同變量名,被覆蓋造成的問題。

文件中函數的可見性

約定 同變量約定類似,如果模塊A要訪問模塊B的函數,需要使用模塊名:函數名的方式,明確指出來。函數調用的子函數,也都是使用本函數所在模塊定義的函數。

例子

//mm.script
x=1
func test()
	js.ui.messagebox("mm.script", x, 0)
end

直接加載的ui.script

import("mm.script" : exp)
x=30
func test()
	js.ui.messagebox("ui.script", x, 0)
end

test() //調用ui.script中的test
exp:test()	//調用mm.script中的test

執行結果:
在這裏插入圖片描述
在這裏插入圖片描述
可見mm.script訪問的是其文件中定義的。
修改一下 讓mm.script中也訪問ui.script中的x值

//mm.script
x=1
func test()
	js.ui.messagebox("mm.script", ui:x, 0)
end

執行上面的ui.script結果爲:
在這裏插入圖片描述
在這裏插入圖片描述
先說到這吧

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章