模組:Complex Number/Example/doc

此頁面為 Module:Complex Number/Example 的說明文件

本說明文件主要目的是說明如何定義一個新的與Module:Complex Number系列函數庫的兼容函數庫。

說明

若要定義一個新的Module:Complex Number系列函數庫需要實作一個新的物件,並實作其Metatables中的運算子。

定義數學資料結構

參閱第85行

數學資料結構需要定義成一個table,並以table來定義或表達所需要的數字。即使數字只有單一物件,也許使用table因為這樣才能透過實作Metatables來完成Module:Complex Number系列函數庫所需的相關功能。

  • numberType:本數學資料結構的類型名稱(字串),用於Module:Complex Number系列函數庫的識別(參閱第92行
  • update():更新結構數值的成員函數(參閱第89行
  • clean():去除過小值或誤差值的成員函數,並返回結果。若無此需求,直接返回自身即可。(參閱第90行

實作metatable

參閱第47行

需定義Metatables的 __add(加法)、 __sub(減法)、 __mul(乘法)、 __div(除法)、 __mod(取餘數)、 __unm(相反數)、 __eq(相等判斷)、 __tostring(以字串表達本物件)

定義數學資料結構的建構子

參閱第85行第95行

由於數學資料結構需要定義為table因此需要有建構子來賦予該結構初值。建構子需要完成以下步驟:

  • 讀取輸入的物件或字串將其存入table物件中(參閱第91行
  • 設定table的metatable為剛才定義的metatable(參閱第88行
  • 定義其他所需的成員變數或函數

定義數學庫的初始化函數

參閱第101行

數學庫必須是一個獨立物件,所有的函數皆需定義在數學函數庫物件下(包括數學資料結構的建構子)。初始化數學庫的函數名稱必為init,當中需要定義以下內容:

完成數學庫的定義

視情況定義列於Module:Complex_Number/doc#比較中的各項函數(如需支援Module:Complex_Number/Functions的情況)。