【问题标题】:How to convert a record of strings to floats in elm如何将字符串记录转换为elm中的浮点数
【发布时间】:2021-08-19 13:35:07
【问题描述】:

我有一条用户提供的记录:

type alias Model =
  { age : String,
    weight : String,
    height : String,
    appetite : String
  }

我想把它转换成数字:

type alias FloatModel =
  { age : Float,
    weight : Float,
    height : Float,
    appetite : Float
  }

我的困难是,如果用户输入了错误的数据,String.toFloat 可能会返回 Nothing。所以我想我想要一个Maybe FloatModel 来处理不良数据。如何在每个成员上调用String.toFloat,如果他们都成功返回Just FloatModel,如果不返回Nothing

【问题讨论】:

    标签: elm


    【解决方案1】:

    如果你想保持FloatModel的完整性,让所有字段都是Float值,你可以有一个函数,它接受Model并返回一个Maybe FloatModel,只有当所有字段都可以时才会成功被解析。

    这可以由mapping over each of the fields 完成,这样单个故障就会“冒泡”并导致函数返回Nothing

    deserializeModel : Model -> Maybe FloatModel
    deserializeModel { age, weight, height, appetite } =
        Maybe.map4 FloatModel
            (String.toFloat age)
            (String.toFloat weight)
            (String.toFloat height)
            (String.toFloat appetite)
    

    【讨论】:

      猜你喜欢
      • 2011-11-25
      • 1970-01-01
      • 2018-02-15
      • 2011-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多