是否收集了 Erlang 的乐趣垃圾?
Are Erlang funs garbage collected?
如果在 erlang 中生成 funs
,它们会被垃圾回收吗?例如复制一个 python 像 iterator
或读取一个流,可以为每个产量生成 fun
s —— 可能很多。使用过的fun
在使用后不再需要,所以它们最终会被垃圾回收吗?
我猜也就是说,#Fun<erl_eval.xx.yyyyyyy>
这样的物体是原子吗?
I guess that is to say, is such an object as #Fun<erl_eval.xx.yyyyyyy>
an atom?
不,乐趣不是原子,乐趣是它自己的数据类型。在某些时候,您会在文档中看到以下 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
如果在 erlang 中生成 funs
,它们会被垃圾回收吗?例如复制一个 python 像 iterator
或读取一个流,可以为每个产量生成 fun
s —— 可能很多。使用过的fun
在使用后不再需要,所以它们最终会被垃圾回收吗?
我猜也就是说,#Fun<erl_eval.xx.yyyyyyy>
这样的物体是原子吗?
I guess that is to say, is such an object as #Fun<erl_eval.xx.yyyyyyy> an atom?
不,乐趣不是原子,乐趣是它自己的数据类型。在某些时候,您会在文档中看到以下 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