gpt4 book ai didi

data-structures - YAML : Use mapped list vs array

转载 作者:行者123 更新时间:2023-12-04 01:48:33 26 4
gpt4 key购买 nike

我正在为我的应用程序创建一个配置文件。为此,我决定使用 YAML,因为它简单且可靠。

我目前正在设计我的应用程序的特殊部分:在这部分中,我必须列出并配置我想在模块中使用的所有数据集。为此,我写了这个:

    // Other stuff       
datasets:
rate_variation:
name: Rate variation over time # Optional
description: Description here # Optional
type: POINTS_2D
options:
REFRESH_TIME: 5 # Time of refresh in second
frequency_variation:
name: Frequency variation over time
description: Description here # Optional
type: POINTS_2D

但是,经过一番思考,我对此产生了一些疑惑。因为也许这样的事情更好:

    datasets:
- id: rate_variation
name: Rate variation over time # Optional
description: Description here # Optional
type: POINTS_2D
options:
REFRESH_TIME: 5 # Time of refresh in second
- id: frequency_variation
name: Frequency variation over time
description: Description here # Optional
type: POINTS_2D

我使用 ID 来识别脚本中的每个数据集(两个数据集必须具有不同的 ID)并为每个数据集生成输出文件。但是现在,我真的不知道什么是最好的解决方案......

您会推荐使用什么?出于什么原因?

最佳答案

对于第一个选项,YAML 强制没有重复的 ID。因此,支持 YAML 的编辑器可能会在这种情况下通过显示错误来支持您的用户。对于第二个选项,您需要检查代码的唯一性,并且用户只有在将语法正确的 YAML 加载到您的应用程序中时才会看到错误。

但是,还有其他因素需要考虑。例如,您可能偏好生成的内存数据结构。如果您使用反序列化为 native 数据结构(PyYAML、SnakeYAML 等)的标准 YAML 实现,则 YAML 结构会强加内存中数据结构的类型(您可以通过编写自定义构造函数来自定义,但这并不简单)。例如,如果你想向一个数据集对象询问它的​​ ID,这只能直接使用第二个结构——如果你使用第一个结构,你需要在父表中搜索数据集值,你必须得到它的 ID .

因此,最终答案是(一如既往):视情况而定。想想你想用它做什么。对于简单的配置文件,我的第二个参数可能比第一个参数弱,但我不知道你到底想用数据做什么。

关于data-structures - YAML : Use mapped list vs array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54349286/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com