变量
变量为我们提供了程序可以操作的命名存储。 Elixir中的每个变量都有一个特定的类型,它决定了变量内存的大小和布局; 可存储在该内存中的值范围; 以及可以应用于变量的操作集。
变量的类型
Elixir支持以下基本类型的变量。
Integer
这些用于整数。 它们在32位架构上的大小为32位,在64位架构上的大小为64位。 整数总是用长生不老药签名。 如果一个整数开始大小超过其限制,那么elixir会在一个Big Integer中对它进行转换,它占用的内存范围为3到n个单词,无论哪个都适合内存。
Floats
浮点数在灵药中的精度为64位。 它们在记忆方面也像整数。 定义浮点数时,可以使用指数表示法。
Boolean
它们可以占用2个值,无论是真还是假。
Strings
字符串在elixir中以utf-8编码。 它们有一个字符串模块,为程序员提供了很多操作字符串的功能。
Anonymous Functions/Lambdas
这些函数可以定义并分配给变量,然后可以用来调用此函数。
Collections
Elixir有很多种类的收集类型。 其中一些是列表,元组,地图,二进制等。这些将在后续章节中讨论。
变量声明 (Variable Declaration)
变量声明告诉解释器为变量创建存储的位置和数量。 Elixir不允许我们声明变量。 必须声明变量并同时为其分配值。 例如,要创建名为life的变量并为其赋值42,我们执行以下操作 -
life = 42
这会将变量life bind到值42.如果我们想要将此变量重新赋值为新值,我们可以使用与上面相同的语法来完成此操作,即
life = "Hello world"
变量命名
命名变量遵循Elixir中的snake_case约定,即所有变量必须以小写字母开头,后跟0或更多字母(大写和小写),最后是可选的'?' 要么 '!'。
变量名也可以使用前导下划线启动,但必须仅在忽略变量时使用,即该变量不会再次使用但需要分配给某些变量。
打印变量
在交互式shell中,如果只输入变量名称,将打印变量。 例如,如果您创建一个变量 -
life = 42
在shell中输入'life',你会得到输出 -
42
但是如果要将变量输出到控制台(当从文件运行外部脚本时),则需要提供变量作为IO.puts函数的输入 -
life = 42
IO.puts life
OR
life = 42
IO.puts(life)
这将为您提供以下输出 -
42