榆树无法发现榆木空白错误

时间:2018-04-05 11:52:17

标签: compiler-errors whitespace elm

我不断收到空白编译错误,我无法发现错误。 这是错误

  

我需要空白,但却被卡在看似新的宣言上。   你要么在上面的声明中缺少一些东西,要么只是   需要在这里添加一些空格:

     

41 |查看:模型 - > Html - >消息       ^我正在寻找以下其中一项:

whitespace

这是代码

view : Model -> Html -> Msg
view model =
    div [] [
        h2 [] [text ("Counter: " ++ (toString model))]
        , button [type_ "button", onClick Add ] [text "add"]
        , button [type_ "button", onClick Sub ] [text "subtract"]
        , button [type_ "button", onClick Reset ] [text "reset"]
    ]

我必须遗漏一些非常简单的东西,但我无法发现它。

2 个答案:

答案 0 :(得分:1)

函数调用后需要一些空格。喜欢

x =
0

不会编译,但

x =
    0

会编译,所以说。你需要像这样缩进div []

view : Model -> Html -> Msg
view model =
    div []
        [ h2 [] [ text ("Counter: " ++ (toString model)) ]
        , button [ type_ "button", onClick Add ] [ text "add" ]
        , button [ type_ "button", onClick Sub ] [ text "subtract" ]
        , button [ type_ "button", onClick Reset ] [ text "reset" ]
        ]

此外,视图的类型注释已关闭,目前您​​已

view : Model -> Html -> Msg

但它应该是

view : Model -> Html Msg

只是在学习时提示,您可以省略类型别名

--view : Model -> Html Msg
view model =

非常好,您可以在以后更熟悉语言时添加注释,这是我学习的方式。

请参阅here以获取工作版本的链接。

答案 1 :(得分:0)

您的类型定义有点错误。以下:

view : Model -> Html -> Msg

应该是:

view : Model -> Html Msg

Html Msg是单个类型。相应的类型定义为type alias Html msgmsg以小写开头,表示此类型是通用类型。这意味着可以在此处放置任何类型。例如,我们可以写Html IntHtml String。例如,由于查看代码会在单击按钮时返回消息,因此我们将此消息类型用作通用类型。结果为Html Msg