Crystal 关联数组

Crystal associative arrays

如何在 Crystal 中创建关联数组?

在这种情况下,我需要一个布尔值数组来配置多个 类。
例如:

arr = ??? # what do i place here to make it work ?
arr[:download] = true
arr[:parse] = true
myClass.new(arr)

我不想开始猜测不同的值是否随着时间的流逝(是下载 arr[0] 还是 arr[1]?)

我可以为数组使用枚举

enum Conf
  dowload
  parse
end

然后以这种方式使用这些值

arr[Conf::download] = true
arr[Conf::parse] = true

但好像没那么好用

您可能正在寻找 NamedTuple:

arr = {
  download: true,
  parse: true
}

如果键是在编译时,这可能是最好的。 否则,您需要使用 Hash,它的行为更像是动态语言中的关联数组。