Elm类型签名

示例

在Elm中,值是通过写一个名称,一个等号然后是实际值来声明的:

someValue = 42

函数也是值,另外还有一个或多个值作为参数。它们通常如下编写:

double n = n * 2

Elm中的每个值都有一个类型。上面的值的类型将由编译器根据如何使用来推断。但是,最好的做法是始终显式声明任何顶级值的类型,并按如下所示编写类型签名

someValue : Int
someValue = 
    42

someOtherValue : Float
someOtherValue =
    42

正如我们所看到的,42可以被定义为任何一个Int或一个Float。这很直观,但是有关更多信息,请参见类型变量

当与功能一起使用时,类型签名特别有价值。这是之前的加倍功能:

double : Int -> Int
double n =
    n * 2

这次,签名带有一个->,箭头,我们将签名发音为“ int to int”,或“取一个整数并返回一个整数”。->表示通过提供double一个Int值作为参数,double将返回Int。因此,它需要一个整数到一个整数:

> double
<function> : Int -> Int

> double 3
6 : Int