當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


erlang iterator(Map, Order)用法及代碼示例

iterator(Map, Order) -> Iterator
OTP 26.0
類型:
Map = #{Key => Value}
Order = iterator_order(Key)
Iterator = iterator(Key, Value)

返回一個Map迭代器Iterator可以使用maps:next/1使用給定的鍵遍曆映射中的鍵值關聯Order.

如果 Map 不是映射或者 Order 無效,則調用失敗並出現 {badmap,Map} 異常。

示例(當 Orderordered 時):

> M = #{ a => 1, b => 2 }.
#{a => 1,b => 2}
> OrdI = maps:iterator(M, ordered), ok.
ok
> {K1, V1, OrdI2} = maps:next(OrdI), {K1, V1}.
{a,1}
> {K2, V2, OrdI3} = maps:next(OrdI2),{K2, V2}.
{b,2}
> maps:next(OrdI3).
none

示例(當 Orderreversed 時):

> M = #{ a => 1, b => 2 }.
#{a => 1,b => 2}
> RevI = maps:iterator(M, reversed), ok.
ok
> {K2, V2, RevI2} = maps:next(RevI), {K2, V2}.
{b,2}
> {K1, V1, RevI3} = maps:next(RevI2),{K1, V1}.
{a,1}
> maps:next(RevI3).
none

示例(當Order是算術排序函數時):

> M = #{ -1 => a, -1.0 => b, 0 => c, 0.0 => d }.
#{-1 => a,0 => c,-1.0 => b,0.0 => d}
> ArithOrdI = maps:iterator(M, fun(A, B) -> A =< B end), ok.
ok
> maps:to_list(ArithOrdI).
[{-1,a},{-1.0,b},{0,c},{0.0,d}]
> ArithRevI = maps:iterator(M, fun(A, B) -> B < A end), ok.
ok
> maps:to_list(ArithRevI).
[{0.0,d},{0,c},{-1.0,b},{-1,a}]

相關用法


注:本文由純淨天空篩選整理自erlang.org大神的英文原創作品 iterator(Map, Order) -> Iterator。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。