小编Luk*_*232的帖子

如何在YAML中表示价值+单位?

我正在设计一个新的配置/数据格式,它将在YAML中.许多输入是int/float值,带有相关单位(例如升,夸脱,品脱,秒,分钟......).

我一直在搜索和阅读,但仍然无法弄清楚:在YAML中将单位与配置项关联的最佳方法是什么?

示例:假设我有几种饮料的清单,(除其他外),我想输入它们的音量.我可以想到几个方面,但(至少在我看来)它们都不是真正理想的:

  1. 要求以相同单位输入所有音量值.

    强制用户自己进行单位转换,这是单调乏味,容易出错并且以后难以验证,因为现在数量输入不同于为饮料列出的原始数量.(饮料来自几个不同的来源,每个来源可能使用不同的度量单位.)

  2. 一系列体积和单位表示值.例:

    volume: [ 0.5, Gallons ]
    
    Run Code Online (Sandbox Code Playgroud)

    (映射也会起作用,虽然更详细)序列可能没问题,但我不确定我是否对此感到满意.

  3. 使用两个"音量"值,一个用于值,另一个用于单位.例:

    volume_value: 0.5
    volume_units: Gallons
    
    Run Code Online (Sandbox Code Playgroud)

    我认为这不是首发.详细,非常松散的关联,容易出错.

  4. 改为使用字符串,并在应用程序中解析它.例:

    volume: 0.5 Gallons
    
    Run Code Online (Sandbox Code Playgroud)

    最简单的输入,并且很容易编写一个健壮的解析器.看起来可能有点像黑客,但......

  5. 应用标签:

    volume: !gallons 0.5
    
    Run Code Online (Sandbox Code Playgroud)

    不确定这个,因为我是YAML的新手并且还没有很好地理解标签.或许,语法更脆弱一些.


所以,问题是:根据YAML规范,或事实上的最佳实践/惯例,是否有一种表示价值+单位的特定方式?无论是我列出的五个之一还是别的,我都希望有一个"正确的答案",留在网站问题指南中.

yaml config

11
推荐指数
1
解决办法
843
查看次数

标签 统计

config ×1

yaml ×1