erlang 爱浪的乐趣是垃圾收集吗?

of1yzvn4  于 2022-12-08  发布在  Erlang
关注(0)|答案(1)|浏览(130)

如果用erlang生成funs,它们是垃圾收集的吗?例如,复制一个python,比如iterator,或者读取一个流,可能会为每个yield生成fun--可能很多。使用过的fun在使用后就不再需要了,所以它们最终是垃圾收集的吗?
我想也就是说,像#Fun<erl_eval.xx.yyyyyyy>这样的物体是原子吗?

x9ybnkn6

x9ybnkn61#

我想也就是说,像#Fun这样的对象是<erl_eval.xx.yyyyyyy>一个原子吗?
不,fun不是一个原子,fun是它自己的数据类型。在某些时候,你会在文档中看到以下Erlang数据类型的顺序:

number < atom < reference < fun < port < pid < tuple < map < nil < list < bit string

也就是说你可以这样写

1> 12 < fun(X) -> X end. 
true

2> abc < fun(X) -> X end.
true

3> [1, 2, 3] < fun(X) -> X end.
false

相关问题