Erlang 的 内置函数


内置函数

内置函数简称为BIF(built-in function),是作为Erlang语言定义一部分的函数。
有些内置函数是用Erlang实现的,但大多数是用Erlang虚拟机里的底层操作实现的。
所有内置函数都表现得像是属于 erlang 模块,但最常用的内置函数而无需用 erlang: 使用

类型转换

返回目录

方法说明举例
atom_to_list/1原子转列表1> atom_to_list(hello).
“hello”
list_to_atom/1列表转原子2> list_to_atom(“hello”).
hello
binary_to_list/1二进制转列表3> binary_to_list(<<“hello”>>).
"hello"
4> binary_to_list(<<104,101,108,108,111>>).
“hello”
list_to_binary/1列表转二进制5> list_to_binary(“hello”).
<<104,101,108,108,111>>
float_to_list/1浮点转列表6> float_to_list(7.0).
“7.00000000000000000000e+00”
list_to_float/1列表转浮点7> list_to_float(“7.000e+00”).
7.0
integer_to_list/1整型转列表8> integer_to_list(77).
“77”
list_to_integer/1列表转整型9> list_to_integer(“77”).
77
tuple_to_list/1元组转列表10> tuple_to_list({a,b,c}).,
[a,b,c]
list_to_tuple/1列表转元组11> list_to_tuple([a,b,c]).
{a,b,c}
term_to_binary/112> term_to_binary({a,b,c}).
<<131,104,3,100,0,1,97,100,0,1,98,100,0,1,99>>
binary_to_term/113> binary_to_term(<<131,104,3,100,0,1,97,100,0,1,98,100,0,1,99>>).
{a,b,c}
binary_to_term/2
binary_to_integer/1二进制转整型14> binary_to_integer(<<“77”>>).
77
integer_to_binary/1整型转二进制15> integer_to_binary(77).
<<“77”>>
float_to_binary/1浮点转二进制16> float_to_binary(7.0).
<<“7.00000000000000000000e+00”>>
binary_to_float/1二进制转浮点17> binary_to_float(<<“7.000e+00”>>).
7.0

类型判断

返回目录

函数说明示例
is_number(X)X是一个整数或浮点数
is_integer(X)X是一个整数
is_float(X)X是一个浮点数
is_atom(X)X是一个原子
布尔值
is_tuple(X)X是一个元组
is_list(X)X是一个列表
字符串
is_map(X)X是一个映射组
is_record(X,Tag)X是一个类型为Tag的记录
is_record(X,Tag,N)X是一个类型为Tag、大小为N的记录
is_function(X)X是一个fun
is_function(X, N)X是一个带有N个参数的fun
is_binary(X)X是一个二进制型
is_pid(X)X是一个进程标识符
is_port(X)X是一个端
is_pmod(X)X是一个参数化模块的实例
is_constant(X)X是一个常量
is_reference(X)X是一个引用

常用函数

返回目录

函数说明示例
abs(Number)求绝对值
bit_size(Binary)求位数
byte_size(Binary)求字节数
element(N, Tuple)N是否是元组的元素
float(Term)换成一个浮点数, Term 必须是一个数字
hd(List)返回列表头
length(List)求列表的长度
node()当前的节点
node(Pid|Ref|Port)创建节点, Pid(进程标识符)、Ref(引用)、Port(端口)
round(Number)将X转换成一个整数
self()返回当前进程标识符
size(X)X的大小,它可以是一个元组或二进制型
trunc(Number)将X去掉小数部分,取整
tl(List)返回列表尾
tuple_size(Tuple)元组的大小
time/0获取时间time().

lists

返回目录

%% 遍历列表
1> lists:map(fun(X) -> 2*X end,  [1, 2, 3, 4]).
[2,4,6,8]

%% 过滤列表
2> lists:filter(
		fun(X) -> lists.member(X, [apple, pear, orange]) end,
		[dog, orange, cat, apple, bear]
	).
[orange, apple]

binary

  • 二进制内置函数
    1. list_to_banary(L) -> B
      返回二进制型,通过把 io 列表(iolist) L 里的所有元素压扁后形成的(压扁就是移除列表里所有的括号)。
      io列表本身是循环定义的,是指一个列表所包含的元素是0~255的整数、二进制型或者其他io列表。
      1> Bin1 = <<1,2,3>>. %<<1,2,3>>
      2> Bin2 = <<4,5>>. %<<4,5>>
      3> Bin3 = <<6>>. %<<6>>
      4> list_to_binary([Bin1, 1, [2, 3, Bin2], 4|Bin3]).
      <<1,2,3,1,2,3,4,5,4,6>>
      
    2. term_to_binary(Term) -> Ext_B 把任何erlang数据类型转换成二进制型。
    3. binary_to_term(Bin) -> Term 将二进制型转回来
    4. byte_size(Bin) -> Size 返回二进制型的字节数
    5. split_binary(Bin,Pos) -> {B1,B2} 在 pos 处把二进制型 Bin 一分为二
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值