【问题标题】:What is the best way to represent constant in YAML?在 YAML 中表示常量的最佳方式是什么?
【发布时间】:2016-08-25 22:18:05
【问题描述】:

我编写了一个框架,我们在其中用 YAML 表示代码,并在运行中将其转换为 Java 代码。

在 YAML 中表示 java 函数的最佳方式是什么?

Configuration:
  - name1: "a"
  - name2: computeName()

在解析 YAML 时,我应该能够将 "a" 解析为字符串,将 computeName() 解析为函数。

我正在寻找最佳实践,以便用户编写 YAML 时直观且容易。

【问题讨论】:

    标签: java yaml


    【解决方案1】:

    对于 YAML 值 a(引号是不必要的)和 computeName() 都是作为字符串加载的标量。其他标量通常以不同方式识别(true 为布尔值,123 为整数,2016-08-26 为日期)。

    如果您想区分像 acomputeName() 这样都作为字符串加载的标量,您可以尝试查看字符串中的特征(如 ()),但 YAML 区分不同类型的方式是通过使用tags。在你的情况下,你可以例如使用:

    Configuration:
      - name1: "a"
      - name2: !func computeName
    

    基于标记(以及程序中适当的标记处理),您可以直接创建一个代表computeName 的实例。后者是 YAML 的做事方式,但可争论的computeName() 不带标签更具可读性。

    什么更直观很大程度上取决于your users are used to。正确记录的简单规则(无论是使用 YAML 标记,还是在程序中解释您的标量字符串)始终是必要的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-21
      • 2017-12-14
      • 2012-01-27
      • 1970-01-01
      相关资源
      最近更新 更多