我想编码Maybe String到string它是否有一个具体的数值,或者null如果它是Nothing。
目前,我使用辅助函数encodeOptionalString myStr来获得所需的效果。我想知道是否有更像 Elm 的方式来做到这一点。我真的很喜欢elm-json-decode-pipeline的 API,它允许我编写Decode.nullable Decode.string解码。
encodeOptionalString : Maybe String -> Encode.Value
encodeOptionalString s =
case s of
Just s_ ->
Encode.string s_
Nothing ->
Encode.null
Run Code Online (Sandbox Code Playgroud)
您可以encodeNullable自己将其概括为一个函数:
encodeNullable : (value -> Encode.Value) -> Maybe value -> Encode.Value
encodeNullable valueEncoder maybeValue =
case maybeValue of
Just value ->
valueEncoder value
Nothing ->
Encode.null
Run Code Online (Sandbox Code Playgroud)
或者,如果您想要一个稍短的临时表达式:
maybeString
|> Maybe.map Encode.string
|> Maybe.withDefault Encode.null
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
248 次 |
| 最近记录: |