Elixir 简单介绍

首先,欢迎你来到 Elixir 的世界。

我是简单教程站长,这份 Elixir 教程并非我原创,我只是从网上收集而来,然后加上了自己的理解。

在本教程中,我们将循序渐进的介绍 Elixir 基础,语言语法,如何定义模块,如何操作常见数据结构的特性等等。

本章将着重于确保您正确的安装了 Elixir,并且您可以成功运行 Elixir 的交互式 Shell IEx

我们再一次强调下这份教程所用的版本

软件 版本
Elixir 版本1.12.0 或以上
Erlang 版本22.0 或以上

如果你在教程或网站上发现任何错误,欢迎在我们的论坛里报告错误,这份教程和其它教程不一样,发现错误我可以手动改的。哈哈。

另外,如果你想阅读英文原版教程,可以点击下面的链接,下载或阅读 EPUB 格式的电子书

  1. 入门指南
  2. MIX 和 OTP 指南
  3. 元编程指南

安装

如果你尚未安装 Elixir,请 访问我们的安装页面。安装完成后,你可以运行elixir --version 来检查当前的 Elixir 版本是否符合我们上面的要求。

交互模式

当我们成功安装 Elixir 后,一般我们可以访问三个新的可执行文件:

  1. iex
  2. elixir
  3. elixirc

你可以分别输入上面三个命令来检查下

iex

$ iex
Erlang/OTP 24 [erts-12.1.4] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [jit] [dtrace]

Interactive Elixir (1.12.3) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> 

elixir

$ elixir
Usage: elixir [options] [.exs file] [data]

## General options

  -e "COMMAND"                 Evaluates the given command (*)
  -h, --help                   Prints this message and exits
  -r "FILE"                    Requires the given files/patterns (*)
  -S SCRIPT                    Finds and executes the given script in $PATH
  -pr "FILE"                   Requires the given files/patterns in parallel (*)
  -pa "PATH"                   Prepends the given path to Erlang code path (*)
  -pz "PATH"                   Appends the given path to Erlang code path (*)
  -v, --version                Prints Elixir version and exits

  --app APP                    Starts the given app and its dependencies (*)
  --erl "SWITCHES"             Switches to be passed down to Erlang (*)
  --eval "COMMAND"             Evaluates the given command, same as -e (*)
  --logger-otp-reports BOOL    Enables or disables OTP reporting
  --logger-sasl-reports BOOL   Enables or disables SASL reporting
  --no-halt                    Does not halt the Erlang VM after execution
  --werl                       Uses Erlang's Windows shell GUI (Windows only)

Options given after the .exs file or -- are passed down to the executed code.
Options can be passed to the Erlang runtime using $ELIXIR_ERL_OPTIONS or --erl.

## Distribution options

The following options are related to node distribution.

  --cookie COOKIE              Sets a cookie for this distributed node
  --hidden                     Makes a hidden node
  --name NAME                  Makes and assigns a name to the distributed node
  --rpc-eval NODE "COMMAND"    Evaluates the given command on the given remote node (*)
  --sname NAME                 Makes and assigns a short name to the distributed node

## Release options

The following options are generally used under releases.

  --boot "FILE"                Uses the given FILE.boot to start the system
  --boot-var VAR "VALUE"       Makes $VAR available as VALUE to FILE.boot (*)
  --erl-config "FILE"          Loads configuration in FILE.config written in Erlang (*)
  --pipe-to "PIPEDIR" "LOGDIR" Starts the Erlang VM as a named PIPEDIR and LOGDIR
  --vm-args "FILE"             Passes the contents in file as arguments to the VM

--pipe-to starts Elixir detached from console (Unix-like only).
It will attempt to create PIPEDIR and LOGDIR if they don't exist.
See run_erl to learn more. To reattach, run: to_erl PIPEDIR.

** Options marked with (*) can be given more than once.

elixirc

$ elixirc
Usage: elixirc [elixir switches] [compiler switches] [.ex files]

  -h, --help                Prints this message and exits
  -o                        The directory to output compiled files
  -v, --version             Prints Elixir version and exits

  --ignore-module-conflict  Does not emit warnings if a module was previously defined
  --no-debug-info           Does not attach debug info to compiled modules
  --no-docs                 Does not attach documentation to compiled modules
  --profile time            Profile the time to compile modules
  --verbose                 Prints compilation status
  --warnings-as-errors      Treats warnings as errors and return non-zero exit status

Options given after -- are passed down to the executed code.
Options can be passed to the Erlang runtime using $ELIXIR_ERL_OPTIONS.
Options can be passed to the Erlang compiler using $ERL_COMPILER_OPTIONS.

简单的范例

现在呢,让我们在控制台输入 iex (如果不行,可以输入 iex.bat) 或在终端 ( shell )中输入 iex 进入交互式 Elixir。

在交互模式下,我们可以输入任何 Elixir 表达式并立即获得结果。我们先用一些基本表达来热热身。

打开iex 并键入以下表达式

$ iex
Erlang/OTP 24 [erts-12.1.4] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [jit] [dtrace]

Interactive Elixir (1.12.3) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> 500 + 20
520
iex(2)> "我喜欢" <> "你"
"我喜欢你"
iex(3)> 

请注入,某些细节(如版本号)在你的会话中可能会有所不同;这并不重要。因为从现在开始,我们将专注于 iex 会话中的代码。

另一方面,请注意 "我喜欢" 中的 双引号 是英文字符,千万不要输入成 “”

退出 iex

Ctrl+C 两次退出 iex。

到这里,恭喜你,你已经学会了如何使用 iex 了。我们接下来的教程将大量使用交互式 shell iex

注意:在 Windows 上 ,你也可以尝试 iex.bat --werl 命令,你可以自己选择哪一个。至于哪一种可以提供更好的体验,具体取决于你使用的是哪个控制台。

Elixir 代码文件扩展名

Elixir 代码文件的扩展名为 .exs

运行脚本

除了使用交互式 shell iex,我们还可以先将代码放到一个文件中,然后运行这个文件。

挑选你最趁手的编辑器,比如 Visual Studio Code 或 Sublime Text4,新建一个名为 hello.exs 为文件并输入以下内容

IO.puts "简单教程你好  from Elixir"

然后在控制台或 shell 里输入下面的命令运行

elixir hello.exs

输出结果如下

$ elixir hello.exs 
简单教程你好  from Elixir

这里我们只是简单的运行 Elixir 文件,后面的教程,我们将学习如何编译 Elixir 代码,以及如何使用 Mix 构建工具。

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.