函数特性
在 Felys 中,函数是同样继承自Object
,因此你可以甚至可以把函数作为参数传入函数中。
声明方式
函数可以通过如下方式声明:
|参数|「
返回 参数+1;
」;
或者这样简写(语法糖):
|参数|参数+1;
作用域
每当运行一个函数时,解释器会为这个函数创建一个独立的环境,和母环境完全隔离。在这个环境里可以访问到:
- 所有传入的参数
- 函数本身,会强制覆盖同名参数
- 常量,即 Rust 层面注入的内置数据
除了常量外,其他内容都是直接复制内存,如果传入一个函数作为变量时,会复制整个函数的语法树,性能开销较大,所以不要滥用递归,尤其是很复杂的递归。
同时,在创建这个环境的时候,也会检查是否超过最大函数调用,可以减轻无限递归的后果。