【发布时间】:2016-06-04 07:25:37
【问题描述】:
我试图在满足条件时从记录列表中返回一条记录。 现在,当条件为 false 时,我正在返回一个包含空字段的记录。
这样好吗? 有没有更好的办法?
xs =
[ { name = "Mike", id = 1 }
, { name = "Paul", id = 2 }
, { name = "Susan", id = 3 }
]
getNth id xs =
let
x =
List.filter (\i -> i.id == id) xs
in
case List.head x of
Nothing ->
{ name = "", id = 0 }
Just item ->
item
【问题讨论】:
-
如果它工作正常,那么可能没问题,不是吗?
-
我不知道我是否理解正确你的问题,但也许你正在寻找package.elm-lang.org/packages/elm-lang/core/4.0.1/Maybe
-
@Edvin Tenovim 是的,它正在工作,但我觉得我做的工作太多了。这就是为什么我认为也许我缺少一种更简单/惯用的方式。
-
@JoseOrtega 为什么不将
List.filter (\i -> i.id == id) xs作为Maybe Item返回,然后在调用函数中处理这些情况? -
好吧,也许 :) 但是为了在另一个函数中使用结果,我可能不得不用另一个 case 表达式来检查这个,对吧?
标签: elm