是否可以将 Maybe 与可扩展记录一起使用?
Is it possible to use Maybe with Extensible Records?
我正在尝试编写一个函数来从可扩展记录列表中提取可能,我想知道这是否可行。源码在下面,或者看Ellie link here
module Temp exposing (..)
import Html exposing (text)
main =
text "Hello"
items : Maybe List { data | id : Int } -> List { data | id : Int }
items maybeList =
case maybeList of
Just t ->
t
Nothing ->
[]
Maybe List { data | id : Int }
解析为 Maybe (List) ({ data | id : Int })
。我不确定为什么错误消息如此具有误导性,但解决方法是将 List ...
包装在 ()
中,如下所示:
items : Maybe (List { data | id : Int }) -> List { data | id : Int }
^ ^
编辑:另外,您的函数可以使用 Maybe.withDefault
:
进行简化
items = Maybe.withDefault []
我正在尝试编写一个函数来从可扩展记录列表中提取可能,我想知道这是否可行。源码在下面,或者看Ellie link here
module Temp exposing (..)
import Html exposing (text)
main =
text "Hello"
items : Maybe List { data | id : Int } -> List { data | id : Int }
items maybeList =
case maybeList of
Just t ->
t
Nothing ->
[]
Maybe List { data | id : Int }
解析为 Maybe (List) ({ data | id : Int })
。我不确定为什么错误消息如此具有误导性,但解决方法是将 List ...
包装在 ()
中,如下所示:
items : Maybe (List { data | id : Int }) -> List { data | id : Int }
^ ^
编辑:另外,您的函数可以使用 Maybe.withDefault
:
items = Maybe.withDefault []