如何通过 Elm 中的字符串值查找匹配类型

How to find matching type by its string value in Elm

如果我有

type SomeType
= TypeA
| TypeB
| ...many more types

并且我有一个匹配类型值的字符串(例如,"TypeA")。如何找到匹配的类型?

stringToSomeType : String -> SomeType
stringToSomeType someType = 

我可以使用 case 并将每个字符串与每种类型匹配,但我敢打赌有更好的方法。

不,在 Elm 中没有实现此目的的通用方法。您必须使用您提到的 case 语句。

这样的通用函数相当于 Haskell 的 Read 类型类,它提供了解析字符串并将其转换为数据的方法。 Elm 还没有类型类,从 Elm 0.16 开始还没有等效的方法来实现这一点。

关于这个问题有几个相关的讨论: