主模块中的多个语句

Multiple statements in Main module

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

示例,

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

main =
  text "1"
  text "2"

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

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?

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

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

你的代码在语法上是一个有效的表达式,所以我不确定你是如何得到这个特定错误的。我不能直接在不属于表达式的顶层重现它,也不能在表达式属于的函数中重现它,但我得到的是类型错误而不是语法错误。您遗漏了代码的一些重要部分。

在任何情况下,即使你将它正确地放入一个函数中,它也不会如你所愿。即使那样也有很多问题:

  1. 您的代码将被解释为应用于函数 text'1'text'2' 的三个参数,因为行-break 不重要。

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

  3. 无论您要将其与什么一起使用,它很可能需要单个元素,而不是元素列表。

将两个元素 return 合二为一的正确方法是将两个元素包裹在一个父元素中,例如 'span':

module Main exposing (main)

import Html exposing (text, span)

main =
    span []
        [ text "1"
        , text "2"
        ]

最后,我建议您从the official Elm guide开始学习。 Elm 非常不同,基于 JavaScript 中趋于工作的试错方法可能只会导致挫败感。