我正在设计一个新的配置/数据格式,它将在YAML中.许多输入是int/float值,带有相关单位(例如升,夸脱,品脱,秒,分钟......).
我一直在搜索和阅读,但仍然无法弄清楚:在YAML中将值和单位与配置项关联的最佳方法是什么?
示例:假设我有几种饮料的清单,(除其他外),我想输入它们的音量.我可以想到几个方面,但(至少在我看来)它们都不是真正理想的:
要求以相同单位输入所有音量值.
强制用户自己进行单位转换,这是单调乏味,容易出错并且以后难以验证,因为现在数量输入不同于为饮料列出的原始数量.(饮料来自几个不同的来源,每个来源可能使用不同的度量单位.)
用一系列体积和单位表示值.例:
volume: [ 0.5, Gallons ]
(映射也会起作用,虽然更详细)序列可能没问题,但我不确定我是否对此感到满意.
使用两个"音量"值,一个用于值,另一个用于单位.例:
volume_value: 0.5 volume_units: Gallons
我认为这不是首发.详细,非常松散的关联,容易出错.
改为使用字符串,并在应用程序中解析它.例:
volume: 0.5 Gallons
最简单的输入,并且很容易编写一个健壮的解析器.看起来可能有点像黑客,但......
应用标签:
volume: !gallons 0.5
不确定这个,因为我是YAML的新手并且还没有很好地理解标签.或许,语法更脆弱一些.
所以,问题是:根据YAML规范,或事实上的最佳实践/惯例,是否有一种表示价值+单位的特定方式?无论是我列出的五个之一还是别的,我都希望有一个"正确的答案",留在网站问题指南中.