我需要知道如何在ELM中做这样的事情。
case form.mode of
"" -> modeDropdown form
(not "solo") -> do something for all other possibilities
这有可能吗?
编辑:
为了提供更广泛的背景信息,我正在尝试创建级联的下拉列表。如果我在url参数中收到模式的“”,则需要显示第一个下拉列表。如果我获得“独奏”,则无需显示任何内容。如果除了“ solo”之外还有其他选择,我必须显示第二个下拉列表。在我看来,我可以为“ solo”返回一个空的span标记,但这感觉有些hacky。
答案 0 :(得分:4)
这有可能吗?
它在问题中的描述方式-不,因为需要在case
表达式中提供模式,而不是布尔条件。但是可以通过以下方式执行:
case form.mode of
"" -> modeDropdown form
"solo" ->
-- do something for `"solo"` possibility
_ ->
-- do something for all other possibilities
您以这种方式提供exhaustive pattern matching
,即e。所有情况都考虑在内。
关于评论部分中的问题:
Haskell语法为s | s / =“ solo”->做事情。榆树有这样的东西吗?
榆树中没有带守卫功能的语法,因此您需要使用if
条件来模仿这种行为。或有elm-guards库,使它不再那么冗长。