Erlang列表:index_of/2函数? [英] Erlang lists:index_of/2 function?
本文介绍了Erlang列表:index_of/2函数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在寻找将返回列表中特定元素索引的Erlang库函数。
所以,如果
X = [10,30,50,70]
lists:index_of(30, X)
将返回1,依此类推,就像java.util.List
的indexOf()
方法一样。
Erlang标准库中是否存在这样的方法?我试着在列表模块里找,但没找到。或者我应该自己写?
推荐答案
您必须自己定义它,如下所示:
index_of(Item, List) -> index_of(Item, List, 1).
index_of(_, [], _) -> not_found;
index_of(Item, [Item|_], Index) -> Index;
index_of(Item, [_|Tl], Index) -> index_of(Item, Tl, Index+1).
但是请注意,访问列表的第N个元素是O(N),因此经常按索引访问列表的算法的效率将低于按顺序迭代列表的算法。
这篇关于Erlang列表:index_of/2函数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文