模块: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的情况)。