- 教程
- 概述
- 环境
- Basic 语法
- 数据类型
- 变量
- 运算符
- 模式匹配( Pattern Matching)
- 决策( Decision Making)
- Strings( Strings)
- Char Lists( Char Lists)
- 列表和元组( Lists and Tuples)
- 关键字列表( Keyword Lists)
- Maps
- 模块( Modules)
- 别名( Aliases)
- 功能( Functions)
- 递归
- 循环
- Enumerables( Enumerables)
- Streams( Streams)
- Structs( Structs)
- 协议 Protocols
- File I/O
- 进程( Processes)
- Sigils( Sigils)
- 理解( Comprehensions)
- Typespecs( Typespecs)
- 行为( Behaviours)
- 错误处理( Errors Handling)
- Macros( Macros)
- (库)Libraries
- 有用的资源
- 讨论
- Show 例子
- Show 例子
- Show 例子
- Show 例子
- Show 例子
- if statement
- if..else statement
- unless statement
- unless..else statement
- cond
- case
数据类型
要使用任何语言,您需要了解该语言支持的基本数据类型。 在本章中,我们将讨论elixir语言支持的7种基本数据类型:整数,浮点数,布尔值,原子,字符串,列表和元组。
数值类型
与任何其他编程语言一样,Elixir支持整数和浮点数。 如果打开elixir shell并输入任何整数或float作为输入,它将返回其值。 例如,
42
运行上述程序时,会产生以下结果 -
42
您还可以在八进制,十六进制和二进制基数中定义数字。
Octal
要在八进制基数中定义数字,请在其前面加上“0o”。 例如,八进制中的0o52相当于十进制中的42。
十六进制(Hexadecimal)
要以十进制基数定义数字,请在其前面加上“0x”。 例如,十六进制中的0xF1相当于十进制中的241。
Binary
要在二进制基数中定义数字,请在其前面加上“0b”。 例如,二进制中的0b1101相当于十进制中的13。
Elixir支持64位双精度浮点数。 它们也可以使用取幂方式定义。 例如,10145230000可写为1.014523e10
Atoms
原子是常量,其名称是它们的值。 可以使用color(:)符号创建它们。 例如,
:hello
Booleans
Elixir支持false作为布尔人。 这两个值实际上都附加到atoms:true和:false。
Strings
Elixir中的字符串插入双引号之间,它们以UTF-8编码。 它们可以跨越多行并包含插值。 要定义字符串,只需在双引号中输入 -
"Hello world"
要定义多行字符串,我们使用类似于带有三重双引号的python的语法 -
"""
Hello
World!
"""
我们将在字符串章节中深入学习字符串,二进制文件和字符串列表(类似于字符串)。
Binaries
二进制是用<>中包含的字节序列。 例如,
<< 65, 68, 75>>
二进制文件主要用于处理位和字节相关的数据,如果有的话。 默认情况下,它们可以在每个值中存储0到255。 通过使用size函数可以增加此大小限制,该函数指示存储该值应该多少位。 例如,
<<65, 255, 289::size(15)>>
Lists
Elixir使用方括号指定值列表。 值可以是任何类型。 例如,
[1, "Hello", :an_atom, true]
列表带有内置函数,用于名为hd和tl的列表的头部和尾部,它们分别返回列表的头部和尾部。 有时,当您创建列表时,它将返回一个字符列表。 这是因为当elixir看到可打印的ASCII字符列表时,它会将其打印为字符列表。 请注意,字符串和字符列表不相等。 我们将在后面的章节中进一步讨论列表。
Tuples
Elixir使用大括号来定义元组。 像列表一样,元组可以保存任何值。
{ 1, "Hello", :an_atom, true
这里出现一个问题, - 当它们以相同的方式工作时,为什么同时提供lists和tuples ? 他们有不同的实现。
列表实际上存储为链表,因此列表中的插入,删除速度非常快。
另一方面,元组存储在连续的内存块中,这使得访问速度更快,但在插入和删除时增加了额外的成本。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论