Applicative 转换系统
Applicative 是 Monoceros 的统一类型转换模型。它的作用很简单:把配置里的值,安全地转成你真正想要的目标类型。
这套系统会在哪里出现
你最常见的接触点有两个:
脚本参数声明
在 script/definition.md 里,你已经见过这种写法:
parameters:
player: Player
amount: Double
这里的 Player、Double,本质上就是 Applicative 注册名。
返回值转换
return-conversion: String
当脚本返回值需要被统一转成某种类型时,也会走 Applicative。
Applicative 解决了什么问题
如果没有这一层,很多系统都会各自写一套“字符串转对象”的逻辑,最后会很乱。
有了 Applicative 之后:
- 脚本参数可以统一声明类型
- 返回值可以统一做转换
- 配置输入可以复用同一套类型名
- 不同模块之间更容易共享数据格式
ApplicativeRegistry 是什么
ApplicativeRegistry 是 Applicative 的注册中心。你可以把它理解成“当前框架里有哪些可用类型转换器的总表”。
它支持两种常见查找方式:
- 按类查
- 按名字查
所以在 YAML 里写类型名时,本质上就是在引用注册表里已经存在的转换器。
什么时候你需要关心它
大多数普通服主只会在下面两种情况遇到它:
- 写脚本参数声明时
- 看返回值转换字段时
如果你只是使用默认能力,知道“这里填的是类型转换名”就够了。
如果你要做扩展、整合或高级脚本编排,这一页就很重要。
使用建议
- 参数声明尽量保持明确,不要全靠脚本里自己猜类型
- 返回值转换只在确实有跨模块传值需求时使用
- 如果你发现多个脚本反复做同一类类型处理,通常就值得考虑 Applicative