elm中的分组大小写表达式(0.18)
在elm(0.18)中,有没有一种方法可以将一系列执行相同操作的大小写表达式组合在一起 例如:elm中的分组大小写表达式(0.18),elm,case-statement,Elm,Case Statement,在elm(0.18)中,有没有一种方法可以将一系列执行相同操作的大小写表达式组合在一起 例如: type Character = Sleepy | Happy | Grumpy | Dopey | Sneezy | Bashful | Doc | SnowWhite | Queen getKindOfCharacter : Character -> String getKindOfCharacter charact
type Character
= Sleepy
| Happy
| Grumpy
| Dopey
| Sneezy
| Bashful
| Doc
| SnowWhite
| Queen
getKindOfCharacter : Character -> String
getKindOfCharacter character =
case character of
(Sleepy | Happy | Grumpy | Dopey | Sneezy | Bashful | Doc) ->
"Dwarf"
SnowWhite ->
"Hero"
Queen ->
"Villain"
不需要,但您可以按如下方式重构类型:
type Character
= Dwaft Dwarf
| SnowWhite
| Queen
type Dwarf
= Sleepy
| Happy
| Grumpy
| Dopey
| Sneezy
| Bashful
| Doc
getKindOfCharacter : Character -> String
getKindOfCharacter character =
case character of
Dwarf _ ->
"Dwarf"
SnowWhite ->
"Hero"
Queen ->
"Villain"
或者更好
type Character
= Dwaft Dwarf
| Hero Hero
| Villain Villain
type Dwarf
= Sleepy
| Happy
| Grumpy
| Dopey
| Sneezy
| Bashful
| Doc
type Hero
= SnowWhite
type Villain
= Queen
那么您就不需要getKindOfCharacter
函数了,因为Character
类型将提供相同的信息
let
hero : Character
hero = Hero SnowWhite
villain : Character
villain = Villain Queen
dwarf : Character
dwarf = Dwarf Dopey
in
...