模組:Complex Number/Example/doc
此頁面為 Module:Complex Number/Example 的說明文件
此頁面是Module:Complex Number/Example的模組文件。 此頁面可能包含了模板的使用說明、分類和其他內容。 |
本說明文件主要目的是說明如何定義一個新的與Module:Complex Number系列函數庫的兼容函數庫。
說明
若要定義一個新的Module:Complex Number系列函數庫需要實作一個新的物件,並實作其Metatables中的運算子。
定義數學資料結構
數學資料結構需要定義成一個table,並以table來定義或表達所需要的數字。即使數字只有單一物件,也許使用table因為這樣才能透過實作Metatables來完成Module:Complex Number系列函數庫所需的相關功能。
- numberType:本數學資料結構的類型名稱(字串),用於Module:Complex Number系列函數庫的識別(參閱第92行)
- update():更新結構數值的成員函數(參閱第89行)
- clean():去除過小值或誤差值的成員函數,並返回結果。若無此需求,直接返回自身即可。(參閱第90行)
實作metatable
需定義Metatables的 __add(加法)、 __sub(減法)、 __mul(乘法)、 __div(除法)、 __mod(取餘數)、 __unm(相反數)、 __eq(相等判斷)、 __tostring(以字串表達本物件)
定義數學資料結構的建構子
由於數學資料結構需要定義為table因此需要有建構子來賦予該結構初值。建構子需要完成以下步驟:
定義數學庫的初始化函數
數學庫必須是一個獨立物件,所有的函數皆需定義在數學函數庫物件下(包括數學資料結構的建構子)。初始化數學庫的函數名稱必為init,當中需要定義以下內容:
- 各項常數的定義(參閱第102行)
- numberType成員函數定義為Module:Complex Number中的_numberType(參閱第106行)
- constructor成員函數設定為數學結構的建構子(參閱第107行)
- elements成員變數設定為單位元素的清單(參閱第108行)
完成數學庫的定義
視情況定義列於Module:Complex_Number/doc#比較中的各項函數(如需支援Module:Complex_Number/Functions的情況)。