YStudio Y++

YAML类

Y++ / YStudio 开发文档 · 一点滴

类对象支持库(不是扁平命令)。路径:支持库 → 扩展类库 → YAML类。

旁路插件:plugins/supportlib.yaml/(feature_id = supportlib.yaml)。API 与 JSON类 对齐,路径语法相同。

类型名必须写完整「YAML类」。声明时自动创建,一般无需再调创建函数。

硬约束

  1. 类型名必须写「YAML类」。
  2. 解析后按路径读写;标量解析时自动识别逻辑(true/false/yes/no)、整数、小数,其余为文本。
  3. 方法调用必须带括号。
  4. 旁路 JSON codegen 不支持「另一同类对象」作参数,故合并用 合并文本(解析文本再深合并),不用两变量互并。

快速开始

YAML类 y
如果 (y.解析("a: 1\nb: true")) {
    输出(y.取整数("a"))
    输出(y.取逻辑("b"))
    输出(y.取类型("a"))
    y.保存("out.yaml", 真)
}
YAML类 副本 = y.克隆()
副本.合并文本("c: hi", 真)

YAML类/方法

共 24 条。

解析

  • 签名:逻辑 解析(文本 文本)
  • 说明:把 YAML 文本解析进当前对象;成功返回真,失败返回假(看 取错误())。

加载

  • 签名:逻辑 加载(文本 文件路径)
  • 说明:按 UTF-8 读文件并解析。

保存

  • 签名:逻辑 保存(文本 文件路径, [逻辑 美化=假])
  • 说明:序列化后按 UTF-8 写文件;失败看 取错误()。

到文本

  • 签名:文本 到文本([逻辑 美化])
  • 说明:把当前文档序列化为 YAML 文本。

取错误

  • 签名:文本 取错误()
  • 说明:返回最近一次失败操作的错误信息;无错时为空文本。

清空

  • 签名:无 清空()
  • 说明:清空文档(根变为 null)。

置为空对象 / 置为空数组

  • 说明:把根设为 {} / [],用于从头构造。

克隆

  • 签名:YAML类 克隆()
  • 说明:新建句柄并深拷贝当前根文档。

取文本 / 取整数 / 取小数 / 取逻辑

  • 说明:按路径取值;不存在或无法转换时返回默认值。路径可用 items[0].id。

取类型

  • 签名:文本 取类型(文本 路径)
  • 说明:返回 空 / 逻辑 / 整数 / 小数 / 文本 / 数组 / 对象;路径失败返回空并写取错误()。

是否存在 / 取成员数

  • 说明:判断路径是否存在;取对象键数或数组长度。

取成员名

  • 签名:文本 取成员名([文本 路径=""])
  • 说明:对象键名每行一个(优先插入序);非对象或失败返回空并写取错误()。

置文本 / 置整数 / 置小数 / 置逻辑 / 置空 / 删除

  • 说明:按路径写入或删除;中间对象/数组不存在时自动创建。

合并文本

  • 签名:逻辑 合并文本(文本 文档, [逻辑 覆盖=真])
  • 说明:解析文档后深合并进当前根。对象递归键;数组在覆盖=真时替换、否则追加;标量仅在覆盖=真时替换。

易错对照

错误 正确
类型写成 YAML 必须「YAML类」
路径写错当有值 先判断解析/取值是否成功
想两对象互并 用 合并文本(源.到文本()) 或先序列化再合并

相关

JSON类 · TOML类