Skip to content

常量注入

注入常量的意义在于:注入的内容是绝对全局且不可变的,只能在当前作用域中被覆盖。而且在函数调用时,即使它们拥有独立的环境,也可以直接使用这些常量。这有点类似于 Racket 中 define 的行为,但是由于 Felys 引入了变量机制,因此不允许在运行时这样做,必须在 Rust 层面进行声明。

初始化

使用 Rust 内置类型HashMap<String, Object>来存储所有需要注入的内容,其中String代表常量名,而Object是 Felys 的常量类型,推荐对列表直接使用HashMap::from()来生成这个哈希表。

rust
let mixin = HashMap::from([
    ("一".to_string(), Object::Number(1.0)),
    ("二".to_string(), Object::Number(2.0)),
]);

注入

然后在创建Worker的时候把这个哈希表传入即可:

rust
Worker::new(mixin, 0.0, 100, Language::ZH);

当你使用这个Worker运行代码的时候,那个代码里就可以来调用这两个常量了,详见下页。