方術第五
函数之调用
函数有两种调用方式,其含义相同。第二种方式会将前一个函数之结果作为参数传递,适用于需要基于计算结果进行后续操作之场景。此外,计算本身亦为一种函数,称为"关键字函数"。此类函数无需括号或调用关键字即可直接使用。
例如:
施「甲」於一於四。
夫一。夫四。取三以施「甲」。
加一以二
夫一。夫二。取二以加。
以上示例中,施「甲」於一於四
与 夫一。夫四。取三以施「甲」
分别展示两种调用方式。第二种方式会将前面之计算结果作为参数传递给函数 甲
。
函数之定义
函数可定义如下,支持无参数或带参数之形式。须注意,函数参数具有类型,输入参数会自动转换为对应类型。
例如:
吾有一術。名之曰「法」。是術曰。
xxx
是謂「法」之術也。
带参数之函数定义如下:
吾有一術 名之曰「三法」。
欲行是術 必先得 二數曰「甲」曰「乙」。一言曰「丙」。是術曰。
xxx
是謂「三法」之術也。
下例中,参数 甲
被定义为字符串类型(一言
),因此输入参数会自动转为字符串:
吾有一術 名之曰「法」。
欲行是術 必先得一言曰「甲」。是術曰。
加「甲」以一。書之。
是謂「法」之術也。
施「法」於二
运行结果为 二一
而非 三
,因为输入参数 二
被转为字符串后与 一
拼接。
函数支持嵌套定义,即函数内部可再定义函数。函数亦可作为参数传递,或作为返回值。
返回值及其他
函数可通过以下方式返回值:
乃得一
:返回数值 1
。
乃得矣
:返回函数的最后计算结果。
乃歸
:无返回值,直接退出函数。
要使用函数返回值,可使用 其
或 之
。例如:
施「法」。加之以一。加之以一。
取三以施「三法」。名之曰「甲」。
变量作用域
函数内部语句可直接访问外部变量,作用域规则与 Python 类似。函数内部声明的变量在函数返回时销毁。