Elm:如何使用(结果字符串值)的值

Elm : How to make use of value with (Result String Value)

例如

fromIsoString : String -> Result String Date

fromIsoString 会生成 Ok (Value) ...任何我可以用来对 Value

做某事的方法

正如我所测试的那样,它与

一起工作
text ( `Value` |> Date.add Days -1|> Date.toIsoString)

尝试的方法:Date.fromIsoString "2018-09-26" |> Result.withDefault 0 给出错误 -> 预期:

Result String #Date#

理想情况下,我想将 ISO 日期 (2020-05-10) 转换为日期格式,并对日期执行一些操作,例如 -1 天。

参考: https://github.com/justinmimbs/date/blob/3.2.0/src/Date.elm

你看到这个 Result String #Date# 错误是因为你已经传递了 Result.withDefault 一个 number 而它期望 Date。如果我们查看 withDefault 类型注释:

> Result.withDefault
<function> : a -> Result x a -> a

withDefault 需要与成功结果相同类型 a 的默认值。因为您已将 0 : number 指定为默认值,所以其类型变为:

> \result -> Result.withDefault 0 result
<function> : Result x number -> number

注意 result 的类型是 Result x number,它与 fromIsoStringResult String Date 输出类型不一致。

TLDR:传递一个 Date 作为默认参数,例如:

> defaultDate = Date.fromCalendarDate 2020 Jan 1
RD 737425 : Date
> Date.fromIsoString "2018-09-26" |> Result.withDefault defaultDate
RD 736963 : Date

查看 Elm Result documentation 可以调用 Result String Date

类型值的其他函数