Learn X By Example · Elixir 篇 · Variables in Elixir
在 Elixir 中,变量是隐式定义和使用的。Elixir 使用的是动态类型,这意味着变量类型是在运行时确定的。
defmodule Variables do
def main do
# Declares and initializes a variable
a = "initial"
IO.puts(a)
# You can declare multiple variables at once
b = 1
c = 2
IO.puts("#{b} #{c}")
# Elixir will infer the type of initialized variables
d = true
IO.puts(d)
# Variables declared without a corresponding
# initialization are nil in Elixir
e = nil
IO.puts(e)
# In Elixir, all variables are reassignable by default
f = "apple"
IO.puts(f)
end
end
Variables.main()
将代码保存为 variables.exs
并使用 elixir
命令运行:
$ elixir variables.exs
initial
1 2
true
apple
在 Elixir 中:
- 变量使用
=
声明和初始化。 - 不需要显示声明类型。
- 变量是动态类型。
- 未初始化的变量默认是
nil
。 - 变量可以重新绑定,除非使用
^
(pin操作符)使其不可变。 - 没有与 Go 中的
:=
等价的语法,因为 Elixir 不要求显示变量声明。
Elixir 使用变量比静态类型语言更灵活,允许快速搭建原型和动态行为。
那么,狗二蛋,代价是什么呢?
代价就是编译时类型检查会牺牲掉一些编译时间。
什么是动态行为?
动态行为是指程序在运行时动态调整其行为的能力,实现方式包括元编程,多态,反射等。