Skip to content

函数特性

在 Felys 中,函数是同样继承自Object,因此你可以甚至可以把函数作为参数传入函数中。

声明方式

函数可以通过如下方式声明:

|参数|「
    返回 参数+1;
」;

或者这样简写(语法糖):

|参数|参数+1;

作用域

每当运行一个函数时,解释器会为这个函数创建一个独立的环境,和母环境完全隔离。在这个环境里可以访问到:

  • 所有传入的参数
  • 函数本身,会强制覆盖同名参数
  • 常量,即 Rust 层面注入的内置数据

除了常量外,其他内容都是直接复制内存,如果传入一个函数作为变量时,会复制整个函数的语法树,性能开销较大,所以不要滥用递归,尤其是很复杂的递归。

同时,在创建这个环境的时候,也会检查是否超过最大函数调用,可以减轻无限递归的后果。