美文网首页
Elixir-基础

Elixir-基础

作者: 你期待的花开 | 来源:发表于2018-11-14 17:35 被阅读93次

    安装

    https://elixir-lang.org 上可以找到安装说明。

    使用 elixir -v 查看 elixir 的版本

    更新 elixir 版本

    brew upgrade elixir
    

    交互模式

    Elixir 自带了 iex 这样一个交互 shell, 可以让我们随时计算 Elixir表达式的值。

    运行 iex
    image

    基本类型

    • 整数类型
      Elixir 语言本身就支持二进制、八进制和十六进制的整数
    • 浮点类型
      在 Elixir 语言中,浮点数要求小数点之前必须有至少一个数字;支持 64 位多精度和e表示的科学计数
    • 布尔类型
      Elixir 支持truefalse 两种布尔值,除了falsenil之外所有的值都为真。
    • 原子类型
      原子类型是名字和代表的值相同的常量
    iex> :foo
    :foo
    iex> :foo == :bar
    false
    

    注意:布尔值 truefalse 实际上就是对应的原子:true:false

    iex> true |> is_atom
    true
    iex> :true |> is_boolean
    true
    iex> :true === true
    true
    

    Elixir 模块的名字也是原子,即使实际上还不存在这个模块,MyApp.MyModule也是一个合法的原子名称。

    iex> is_atom(MyApp.MyModule)
    true
    

    Elixir 以大写字母开始的别名也是原子。

    iex> is_atom(JustMyAliasTest)
    true
    

    原子也可以用来直接引用 Erlang 标准库的模块,包括内置的模块。

    iex> :crypto.strong_rand_bytes 3
    <<23, 104, 108>>
    
    • 字符串
      Elixir 的字符串是 UTF-8 编码的,用双引号包住,字符串支持换行符和转义字符
    iex> "foo
    ...> bar"
    "foo\nbar"
    iex> "foo\nbar"
    "foo\nbar"
    

    基本操作

    算术运算

    Elixir 支持基本的 +、-、*、/操作符,不过要注意 / 的结果是浮点数。

    iex> 2 + 2
    4
    iex> 2 - 1
    1
    iex> 2 * 5
    10
    iex> 10 / 5
    2.0
    

    Elixir 提供了整数除法和求余的两个方法

    iex> div(10, 5)
    2
    iex> rem(10, 3)
    1
    

    注:
    余数的英文 remainder
    整数的英文 devision

    布尔运算

    Elixir 提供了||&&!布尔操作符,它们支持任何类型的操作:

    iex> -20 || true
    -20
    iex> false || 42
    42
    
    iex> 42 && true
    true
    iex> 42 && nil
    nil
    
    iex> !42
    false
    iex> !false
    true
    

    还有三个操作符(andornot),它们的第一个参数必须是布尔类型(truefalse):

    iex> true and 42
    42
    iex> false or true
    true
    iex> not false
    true
    iex> 42 and true
    ** (ArgumentError) argument error: 42
    iex> not 42
    ** (ArgumentError) argument error
    

    比较

    Elixir 有我们习惯的一切比较运算符 :==,!=,===,!==, <=, >=, <>
    对于整数和浮点数的严格比较,可以使用 ===

    Elixir 有一个很重要的特性,那就是任意两个类型之间都可以进行比较,这在排序的时候非常有用。
    number < atom < reference < function < port < pid < tuple < map < list < bitstring

    字符串插值

    iex> name = "Sean"
    iex> "Hello #{name}"
    "Hello Sean"
    

    字符串拼接

    使用 <>操作符进行字符串拼接:

    iex> name = "Sean"
    iex> "Hello " <> name
    "Hello Sean"
    

    相关文章

      网友评论

          本文标题:Elixir-基础

          本文链接:https://www.haomeiwen.com/subject/npytmftx.html