如何在 elm 中列出某个类型定义
how to list out a certain type definition in elm
type alias Employee =
{ role : Role, name : String }
type Role
= Engineer
| Manager
| Sales
| Accounting
| Hr
generateSample =
Role.all |> List.map createModelWithType
我需要完成 Role.all
,在这种情况下甚至 Role
都无法访问。完成此任务的最佳方式/替代方式是什么。
没有自动列出一个类型的所有构造函数的方法。您可以像这样构建一个列表:
allRoles : List Role
allRoles =
[ Engineer
, Manager
, Sales
, Accounting
, Hr
]
Elm中没有类似其他语言的简单枚举的概念。类型构造函数也可以有参数,这可能有助于理解为什么没有内置的方法来枚举构造函数列表。
选择类型时有很多注意事项。这取决于将对数据使用什么行为。也许在您学习的过程中,您可以简单地选择一种有效且看起来足够简单的数据类型。有了经验,您会发现选择一种类型的优势。
为了在为不同问题选择类型时的思维方式上获得更多启发,您可能需要查看此演示文稿:https://www.youtube.com/watch?v=XpDsk374LDE
演示中有两个主题混合在一起,其中之一是如何为不同的行为选择类型。
这是一种方法:
type Alias Role =
{ Engineer : Bool
, Manager : Bool
, Sales : Bool
, Accounting : Bool
, Hr : Bool
}
type alias Employee =
{ role : Role, name : String }
type Role
= Engineer
| Manager
| Sales
| Accounting
| Hr
generateSample =
Role.all |> List.map createModelWithType
我需要完成 Role.all
,在这种情况下甚至 Role
都无法访问。完成此任务的最佳方式/替代方式是什么。
没有自动列出一个类型的所有构造函数的方法。您可以像这样构建一个列表:
allRoles : List Role
allRoles =
[ Engineer
, Manager
, Sales
, Accounting
, Hr
]
Elm中没有类似其他语言的简单枚举的概念。类型构造函数也可以有参数,这可能有助于理解为什么没有内置的方法来枚举构造函数列表。
选择类型时有很多注意事项。这取决于将对数据使用什么行为。也许在您学习的过程中,您可以简单地选择一种有效且看起来足够简单的数据类型。有了经验,您会发现选择一种类型的优势。
为了在为不同问题选择类型时的思维方式上获得更多启发,您可能需要查看此演示文稿:https://www.youtube.com/watch?v=XpDsk374LDE 演示中有两个主题混合在一起,其中之一是如何为不同的行为选择类型。
这是一种方法:
type Alias Role =
{ Engineer : Bool
, Manager : Bool
, Sales : Bool
, Accounting : Bool
, Hr : Bool
}