📜  Elixir 格式代码 - Elixir (1)

📅  最后修改于: 2023-12-03 15:00:35.552000             🧑  作者: Mango

Elixir 格式代码 - Elixir

Elixir 是一种面向函数式编程的编程语言,它运行在 Erlang 虚拟机(BEAM)上。它支持并发、分布式、容错等特性,是构建可扩展、高可用的分布式系统的理想选择。

安装 Elixir
  1. 在 macOS 上安装 Elixir

    brew install elixir
    
  2. 在 Ubuntu 上安装 Elixir

    sudo apt-get install elixir
    
基本语法
变量

使用 = 进行赋值,变量名以小写字母或下划线开头。

iex> x = 1
1

iex> _ = 2    # _ 表示匿名变量,不需要对其进行命名
2

变量的值是不可变的,即一旦被赋值,它的值就不能再次改变。

iex> x = 1
1

iex> x = 2
** (CompileError) iex:2: cannot rebind variable "x"
常量

使用 = 进行赋值,常量名以大写字母开头。

iex> PI = 3.14
3.14

iex> PI = 3     # 不能再次改变
** (CompileError) iex:2: cannot rebind variable "PI"
数据类型

Elixir 的数据类型包括:

  • 数字
  • 布尔值
  • 原子
  • 字符串
  • 列表
  • 元组
  • Map
  • 函数

数字

Elixir 支持整型和浮点型数据。

iex> x = 10
10

iex> y = 5.5
5.5

布尔值

Elixir 的布尔值使用 truefalse 表示。

iex> x = true
true

iex> y = false
false

原子

原子是 Elixir 中的一个特殊数据类型,它是一个以冒号开头的不可变的符号。原子通常用于表示状态、选项等。

iex> :ok
:ok

iex> :error
:error

字符串

Elixir 的字符串使用双引号表示,也可以使用单引号表示。

iex> x = "hello"
"hello"

iex> y = 'world'
'world'

列表

Elixir 的列表是一种可变的有序集合。

iex> x = [1, 2, 3]
[1, 2, 3]

iex> x ++ [4, 5]    # 拼接列表
[1, 2, 3, 4, 5]

iex> hd x    # 得到列表的头部元素
1

iex> tl x    # 得到列表的尾部元素
[2, 3]

元组

Elixir 的元组是一种不可变的有序集合,它可以包含不同类型的元素。

iex> x = {:ok, 200}
{:ok, 200}

iex> elem x, 1    # 获取元组的第二个元素(第一个元素的下标是 0)
200

Map

Elixir 的 Map 是一种键值对集合,每个键都是唯一的。

iex> x = %{:name => "John", :age => 35}
%{age: 35, name: "John"}

iex> x[:name]    # 获取键为 :name 的值
"John"

函数

Elixir 中的函数是一等公民,可以直接作为值进行传递。

iex> square = fn x -> x * x end
#Function<6.52032458/1 in :erl_eval.expr/5>

iex> square.(5)    # 使用 . 调用函数
25
控制结构

if 表达式

if condition do
  # 符合条件的代码块
else
  # 不符合条件的代码块
end

case 表达式

case value do
  pattern1 ->
    # 匹配 pattern1 的代码块
  pattern2 ->
    # 匹配 pattern2 的代码块
  _ ->
    # 默认的代码块
end

do/end 表达式

do
  # 代码块
end
函数

定义函数

defmodule ModuleName do
  def function_name(argument1, argument2, ...) do
    # 函数体
  end
end

匿名函数

fn argument1, argument2, ... -> 
  # 函数体
end

模式匹配

defmodule ModuleName do
  def function_name([head | tail]) do
    # 处理 head 和 tail
  end

  def function_name([]) do
    # 处理空列表
  end
end
总结

本文介绍了 Elixir 的基本语法、数据类型、控制结构和函数定义,同时提供了一些示例代码。希望通过这篇文章,读者能够对 Elixir 有一个初步的了解,并能够开始学习和使用 Elixir 编程语言。