主模块中的多个语句

dja*_*per 2 syntax-error elm

如何在Elm主模块中放置多行语句

例,

module Main exposing (main)
import Html exposing (text)

main =
  text "1"
  text "2"
Run Code Online (Sandbox Code Playgroud)

上面的方法不起作用,并给出此错误

Detected errors in 1 module.
-- TOO MANY ARGS -------------------------------------------------- src/Main.elm

The `text` function expects 1 argument, but it got 3 instead.

5|>  text "1"
6|   text "2"

Are there any missing commas? Or missing parentheses?
Run Code Online (Sandbox Code Playgroud)

放入括号和逗号没有帮助。

gle*_*nsl 7

Elm是一种基于表达的语言。它没有声明,因为它没有副作用。而是由表达式组成,这些表达式返回与在编译时验证的类型相关联的值。

从语法上讲,您的代码是有效的表达式,所以我不确定您是如何得到该特定错误的。我不能直接在表达式不属于的顶级或在表达式确实属于的函数中重现它,但是我得到的是类型错误而不是语法错误。您遗漏了代码的一些基本部分。

无论如何,即使您正确地将其放入函数中,也不会做您想要的事情。即使如此,仍然存在多个问题:

  1. 您的代码将被解释为适用于功能三个参数text'1'text,和'2',因为断行并不显著。

  2. '1'是字符文字,而不是字符串文字。"1"是字符串文字。

  3. 无论您打算将其用于什么,它都最有可能期望使用单个元素,而不是元素列表。

返回两个元素为一个的正确方法是将两个元素包装在父元素中,例如'span':

module Main exposing (main)

import Html exposing (text, span)

main =
    span []
        [ text "1"
        , text "2"
        ]
Run Code Online (Sandbox Code Playgroud)

最后,我建议您按照官方Elm指南开始学习。Elm与众不同,基于基于JavaScript的工作原理的反复试验方法可能会导致挫败感。