如何通过 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 开始还没有等效的方法来实现这一点。
关于这个问题有几个相关的讨论:
- https://groups.google.com/forum/#!topic/elm-discuss/sWqkLW7m61w
- https://groups.google.com/forum/#!topic/elm-discuss/ED2MXQ6A4QY
- Does Elm have an equivalent of Haskell's "Read"
如果我有
type SomeType
= TypeA
| TypeB
| ...many more types
并且我有一个匹配类型值的字符串(例如,"TypeA")。如何找到匹配的类型?
stringToSomeType : String -> SomeType
stringToSomeType someType =
我可以使用 case 并将每个字符串与每种类型匹配,但我敢打赌有更好的方法。
不,在 Elm 中没有实现此目的的通用方法。您必须使用您提到的 case 语句。
这样的通用函数相当于 Haskell 的 Read
类型类,它提供了解析字符串并将其转换为数据的方法。 Elm 还没有类型类,从 Elm 0.16 开始还没有等效的方法来实现这一点。
关于这个问题有几个相关的讨论:
- https://groups.google.com/forum/#!topic/elm-discuss/sWqkLW7m61w
- https://groups.google.com/forum/#!topic/elm-discuss/ED2MXQ6A4QY
- Does Elm have an equivalent of Haskell's "Read"