Elm - 基本语法
本章讨论如何用 elm 编写一个简单的程序。
步骤 1 − 在VSCode中创建目录HelloApp
现在,创建一个文件 − Hello.elm 在此目录中。
上图显示了在 VSCode 中打开的项目文件夹 HelloApp 和终端。
步骤 2 − Install the necessary elm packages
elm 中的包管理器是elm-package。 安装elm-lang/html包。 这个包将帮助我们在浏览器中显示 elm 代码的输出。
在 VSCode 中的命令提示符中右键单击 File → Open,遍历到 HelloApp 项目文件夹。
在终端窗口中执行以下命令 −
C:\Users\dell\Elm\HelloApp> elm-package install elm-lang/html
以下文件/文件夹将在安装包时添加到项目目录中。
- elm-package.json(文件),存储项目元数据
- elm-stuff(文件夹),存储外部包
软件包安装成功后,将出现以下消息。
步骤 3 − 将以下代码添加到Hello.elm文件中
-- importing Html module and the function text import Html exposing (text) -- create main method main = -- invoke text function text "Hello Elm from TutorialsPoint"
上面的程序将在浏览器中显示一条字符串消息Hello Elm from TutorialsPoint。
为此,我们需要在 Html 模块中导入函数 text。 text 函数用于打印浏览器中的任何字符串值。 main 方法是程序的入口点。 main 方法调用 text 函数并向其传递一个字符串值。
步骤 4 − 编译项目
在 VSCode 终端窗口中执行以下命令。
elm make Hello.elm
上述命令的输出如下所示 −
//update path to the proj folder in the command elm make C:\Users\dell\elm\HelloApp>elm make Hello.elm Success! Compiled 38 modules. Successfully generated index.html
上面的命令将生成一个index.html文件。 elm 编译器将 .elm 文件转换为 JavaScript 并将其嵌入到 index.html 文件中。
步骤 5 − 在浏览器中打开index.html
在任何浏览器中打开 index.html 文件。 输出如下所示−
Elm 中的注释
注释是提高程序可读性的一种方法。 注释可用于包含有关程序的附加信息,例如代码作者、有关函数构造的提示等。编译器会忽略注释。
Elm 支持以下类型的注释 −
单行注释(--) − -- 和行尾之间的任何文本都被视为注释。
多行注释 ({- -}) − 这些注释可能跨越多行。
示例
-- this is single line comment {- This is a Multi-line comment -}
行和缩进
Elm 不提供大括号来指示函数定义或流程控制的代码块。 代码块由严格执行的行缩进表示。 块中的所有语句必须缩进相同的量。 例如−
module ModuleIf exposing (..) x = 0 function1 = if x > 5 then "x is greater" else "x is small"
但是,以下块会生成错误 −
-- Create file ModuleIf.elm module ModuleIf exposing (..) x = 0 function1 = if x > 5 then "x is greater" else --Error:else indentation not at same level of if statement "x is small"
因此,在 Elm 中,所有缩进相同数量空格的连续行将形成一个块。
C:\Users\admin>elm repl ---- elm-repl 0.18.0 ----------------------------------------------------------- :help for help, :exit to exit, more at <https://github.com/elm-lang/elm-repl> --------------------------------------- ----------------------------------------- > import ModuleIf exposing(..) -- importing module from ModuleIf.elm file >function1 -- executing function from module -- SYNTAX PROBLEM --------------------------------------------------- I need whitespace, but got stuck on what looks like a new declaration. You are either missing some stuff in the declaration above or just need to add some spaces here: 7| else ^ I am looking for one of the following things: whitespace