【问题标题】:Elm recursive type definitionElm 递归类型定义
【发布时间】:2016-09-15 05:58:24
【问题描述】:

看了一眼 elm 代码,发现了以下类型定义:

type Cmd msg = Cmd

我似乎无法理解这是如何工作的。任何人都可以解释?

【问题讨论】:

    标签: elm


    【解决方案1】:

    这不是递归类型定义,而是将类型 Cmd 定义为具有一个标签 Cmd 的联合类型,其中不包含任何额外信息。通常这样的定义是为了表明该类型表示的值在 elm 中没有单独的含义。

    在这种情况下,类型是这样定义的,因为 Cmd 上的所有操作都隐藏在平台代码中,因此用户无需检查或解构 Cmd 值。 Cmd 需要公开一个类型变量以保持 Cmd 值的类型安全,因为它们封装了一个承诺来产生给定类型的消息,并且可以通过 Cmd.map 更改该类型。

    【讨论】:

      猜你喜欢
      • 2018-04-06
      • 1970-01-01
      • 1970-01-01
      • 2017-07-26
      • 2021-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多