Elixir 简单介绍
首先,欢迎你来到 Elixir 的世界。
我是简单教程站长,这份 Elixir 教程并非我原创,我只是从网上收集而来,然后加上了自己的理解。
在本教程中,我们将循序渐进的介绍 Elixir 基础,语言语法,如何定义模块,如何操作常见数据结构的特性等等。
本章将着重于确保您正确的安装了 Elixir,并且您可以成功运行 Elixir 的交互式 Shell IEx。
我们再一次强调下这份教程所用的版本
软件 | 版本 |
---|---|
Elixir | 版本1.12.0 或以上 |
Erlang | 版本22.0 或以上 |
如果你在教程或网站上发现任何错误,欢迎在我们的论坛里报告错误,这份教程和其它教程不一样,发现错误我可以手动改的。哈哈。
另外,如果你想阅读英文原版教程,可以点击下面的链接,下载或阅读 EPUB 格式的电子书
安装
如果你尚未安装 Elixir,请 访问我们的安装页面。安装完成后,你可以运行elixir --version
来检查当前的 Elixir 版本是否符合我们上面的要求。
交互模式
当我们成功安装 Elixir 后,一般我们可以访问三个新的可执行文件:
iex
elixir
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 构建工具。