在Monkey C,除了class之外,還有一種東西叫module
根據官方文件的說明,module存在的目的就跟java的package一樣,
java的package跟class的關係是資料夾跟檔案,
在java,可以有多個class跟interface放在一個package裡面,
只要每個程式碼檔案的最上方有加上package xxx;
,並且放在相應的目錄結構,
那麼這些檔案就都屬於package xxx
Monkey C 的module跟package的概念相近,都是用來管理跟方便使用程式碼,
Monkey C 的module裡面可以包含數個class、function、變數,甚至其他module。
不太一樣的地方在於,如果你的程式碼要放在module內,
就必須把程式碼用module name{}的方式包起來,如下範例:
module xxx {
//程式碼
}
我覺得還滿特別的一點是,Monkey C的程式碼不一定要寫在class裡面,
需要的話也可以直接用module包著各種function或變數,就算沒有class也沒關係。
此外,其他class對module沒有任何存取限制,module也是永遠都public,不能拿修飾子來套用。
如果要寫一個專門拿來給其他class呼叫的class或function,
這時很適合把這個class或function放到module裡面來。
而其他class要使用module的方式也很簡單,使用using
就可以引入module來使用了,
如果覺得module名稱太長,也可以加上as
,來自訂名稱,如下方範例
using Toybox.System as Sys;
function myFunction() {
Sys.print("Hello");
}