在榆树语言中,我很难解释我的问题......在榆树的这些片段中:我理解签名之类的东西
update : Msg -> Model -> Model
Run Code Online (Sandbox Code Playgroud)
其中参数/输出由箭头分隔,但我如何阅读/理解如下:
Sub Msg
Program Never Model Msg
Run Code Online (Sandbox Code Playgroud)
在:
main : Program Never Model Msg
main =
program
{ init = init
, view = view
, update = update
, subscriptions = subscriptions
}
subscriptions : Model -> Sub Msg
subscriptions model =
Sub.none
Run Code Online (Sandbox Code Playgroud)
Cha*_*ert 12
在类型签名中,参数类型由->,最后一个类型是返回值.
如果没有 ->符号,则表示它是该类型的值.在您的main示例中,类型main为Program Never Model Msg.它没有箭头,所以它不需要参数.
现在,类型注释中的每个参数和返回值可能有几个由空格分隔的内容,如您的main示例所示.最左边是类型,后跟由空格分隔的类型参数.
Program Never Model Msg
| | | |
| ------|-----
type type parameters
Run Code Online (Sandbox Code Playgroud)
类型参数类似于C#等语言中的泛型.C#中的等效语法是:
void Program<Never, Model, Msg>()
Run Code Online (Sandbox Code Playgroud)
C#没有直接关联,因为它有一种不同的约束泛型类型参数的方式,但总体思路成立.
Sub Msg,List Int,Program Never Model Msg
Sub,List和Program是类型构造.您可以将它们视为采用类型并返回其他类型的函数.
就其本身而言,Sub,List和Program不完全型.它们就像是一块拼错的拼图.当一个人添加缺失的部分时,拼图就完成了.
我通常使用的字读他们在我的脑海of中一个List的IntS,A Program的Never,Model和Msg.
| 归档时间: |
|
| 查看次数: |
354 次 |
| 最近记录: |