A wrapper module for Erlang's array.
Requires Elixir v1.14+:
def deps do
[
{:ex_array, "~> 0.1.3"}
]
end
Documentation can be found at: https://hexdocs.pm/ex_array.
Without options, ExArray
fallbacks on:
size
: 0default
:nil
fixed
:false
ExArray.new()
#=> #ExArray<[], fixed=false, default=nil>
ExArray.new(5)
#=> #ExArray<[nil, nil, nil, nil, nil], fixed=true, default=nil>
You can provide options to change defaults:
ExArray.new(size: 5, default: 0, fixed: false)
#=> #ExArray<[0, 0, 0, 0, 0], fixed=false, default=0>
Note: When you specify a size
, the array is automatically fixed
.
arr = ExArray.new(size: 5, default: 0, fixed: false)
arr = ExArray.set(arr, 1, "Hello")
#=> #ExArray<[0, "Hello", 0, 0, 0], fixed=false, default=0>
ExArray.reset(arr, 1)
#=> #ExArray<[0, 0, 0, 0, 0], fixed=false, default=0>
arr = ExArray.new() |> ExArray.set(1, "Hello")
ExArray.get(arr, 0)
#=> nil
ExArray.get(arr, 1)
#=> "Hello"
ExArray.size(arr)
#=> 2
arr = ExArray.new(3) |> ExArray.set(1, "Hello")
ExArray.to_list(arr)
#=> [nil, "5", nil]
ExArray.sparse_to_list(arr)
#=> ["Hello"]
ExArray.to_orddict(arr)
#=> [{0, nil}, {1, "Hello"}, {2, nil}]
ExArray.sparse_to_orddict(arr)
#=> [{1, "Hello"}]
This package is a fork of takscape/elixir-array. The latest commit was in 2014 and the compilation was broken with recent versions of Elixir.