windows 10 64位 elixir安装
1.卸载旧的erlang(可选)2.安装新的erlang OTP18https://packages.erlang-solutions.com/erlang/esl-erlang/FLAVOUR_1_general/esl-erlang_18.3-1~windows_amd64.exe
Elixir基础学习:并发
Elixir 的一大卖点就是对并发的支持。得益于 Erlang VM (BEAM),Elixir的并发要比预期中简单得多。这个并发模型的基础是Actors:通过消息传递来交互的进程(译者注:这个进程不是通常所说的操作系统级别的进程,可以理解为 Erlang VM (BEAM)自己管理的轻量级进程)。这节课,我们会讲 Elixir 自带的并发模型。在后面的章节中,我们还会介绍底层的实现机制:OTP 行为(behaviors)。进程Erlang VM (BEAM) 的进程很轻量级,可以运行在所有 CPU 上。看起...
Elixir基础学习:escript
要想在 Elixir 中生成可执行文件,我们要用 escript,escript 会生成的可执行文件,可以运行在任何安装了 Erlang的平台。用 escript 创建可执行文件要做的事很少:实现一个 main/1 函数,更新一下 Mixfile。我们要先创建一个模块作为可执行文件的入口,也就是我们实现 main/1 函数的地方:defmodule ExampleApp.CLI do def main(args \\ []) do # Do stuff end end
Elixir基础学习:测试
测试是软件开发重要的一部分,这节课我们会讲一下如何使用 ExUnit 测试 Elixir 代码,以及测试中的最佳实践方法。ExTestElixir 自带的测试框架是 ExUnit,它包括的功能足够我们充分测试自己的代码。在继续讲解之前,有一点要注意:测试是通过 Elixir 脚本来执行的,所以测试文件的后缀名必须是 .exs。在运行测试之前,我们要先用 ExUnit.start() 来启动 ExUnit,这一般在 test/test_helper.exs 已经帮我们做了。上节课我们自动生成的示例项目中,mix...
Elixir基础学习:Mix混合
在更深入了解 Elixir 之前,我们必须先学习 mix。如果你熟悉 Ruby 的话,mix 就是 Bundler,RubyGems 和Rake 的结合。mix 对于开发 Elixir 至关重要,我们在这篇课程只会介绍它的部分特性。要了解 mix 的所有功能,可以执行 mixhelp 查看。直到现在,我们还一直用 iex 和 Elixir 打交道,这种方法明显是有局限的。在编写大型项目的时候,为了方便管理,我们会把代码分成不同的文件,mix 就是为了管理项目而生的。新项目要创建一个新的项目,只要运行 mix ...
Elixir基础学习: 组合
根据以往的经验,我们知道把所有的函数都放到同一个文件是不可控的。这节课我们就讲一下如何给函数分组,以及如何定义一种叫结构体的特殊字典来有效地组织代码。模块模块是把函数组织到不同命名空间的最好方法,除了能为函数分组,它还允许我们定义命名函数和私有函数,这个已经在前面讲过。我们来看一个简单的例子:defmodule Example do def greeting(name) do "Hello #{name}." end end iex> Example.greetin...
Elixir基础学习: 函数
Elixir 和其他函数式语言一样,函数都是一等公民。我们将学习 Elixir 中不同类型的函数,它们与众不同的地方,以及如何使用它们。匿名函数就像名字中说明的那样,匿名函数没有名字。我们在 Enum 课程中看到过,它们经常被用来传递给其他函数。要定义匿名函数,我们需要 fn 和 end 关键字,在这两者之间,我们可以定义任意数量的参数和函数体,它们用 -> 分隔开。我们来看一个简单的例子:iex> sum = fn (a, b) -> a + b end iex> sum.(2,...
Elixir基础学习: 控制语句
if 和 unless你之前可能遇到过 if/2 了,如果你使用过 Ruby,也会很熟悉 unless。它们在 Elixir 使用方式也一样,只不过它们在 Elixir 里是宏定义,不是语言本身的语句。你可以在 Kernel 模块 找到它们的实现。需要注意的是,Elixir 中唯一为假的值是 nil 和 布尔值 false。iex> if String.valid?("Hello") do ...> "Valid string!" ...>...
Elixir基础学习: 模式匹配
模式匹配是 Elixir 很强大的特性,它允许我们匹配简单值、数据结构、甚至函数。这篇课程,我们介绍如何使用模式匹配。匹配操作符做好心理准备了吗?Elixir 中,= 操作符就是我们的匹配操作符。通过这个匹配操作符,我们可以赋值和匹配值,我们来看一下:iex> x = 1 1
Elixir基础学习: Enum 模块
Enum 模块一些枚举集合元素的算法。EnumEnum 模块提供了超过一百个函数,和我们上节课提到的集合交互。这篇课程只会讲其中的一部分,要想了解全部的函数,请访问官方的 Enum 文档。 而要想了解懒枚举(lazy enumeration),访问 Stream 模块。all?使用 all? 的时候,我们要提供一个函数来作用到要操作的集合上。只有当函数在所有的元素上都返回 true 的时候,all? 才会返回 true,否则结果就是 false。