用途:PKL 是 Apple 开源的、可编程且类型安全的配置语言,用于替代 YAML/JSON/TOML,输出可渲染为多种标准格式。本技能面向编写 PKL 配置的场景,强调训练数据可能过时,须先联网查阅官方文档再写代码。
主要能力:类型安全与约束(如 port: UInt16、timeout: Duration(isPositive)),在求值期而非运行时检查;用 amends 做配置继承,覆盖部分属性并保留其余,实现 dev/staging/prod 分层配置;多格式输出,同一 PKL 源可渲染为 JSON、YAML、XML、plist、Java properties、textproto;支持计算属性与延迟绑定,属性可引用其他属性并在依赖被 amend 时自动重算。
使用方式与要点:写码前先 WebFetch 对应文档——语言语法与类型、入门教程、CLI 命令。改动值用 amends,新增属性才用 extends。输出格式需显式声明,pkl eval file.pkl 默认输出 PCF 而非 JSON/YAML,需加 -f json 或在模块内声明 renderer。无默认值的类型属性为必需项,amend 时必须提供值。Listing(有序序列)与 Mapping(键值集合)为不同类型,不可互相强制转换。字符串插值使用 (expression),而非 ${} 或 #{},后者会原样输出且不报错。标准库用 pkl: 方案导入,本地文件用相对路径。
常用命令:pkl eval config.pkl;pkl eval -f json config.pkl;pkl eval -f yaml -o output.yaml config.pkl;pkl test tests/*.pkl;pkl project resolve;pkl eval -x metadata.version config.pkl。
适用场景:需要类型校验、分层继承与多格式输出的配置管理。限制:资料未提供安装方式、收费与平台信息,暂未提供。