class Hash(K, V)
- Hash(K, V)
- Reference
- Object
Overview
A Hash represents a collection of key-value mappings, similar to a dictionary.
Main operations are storing a key-value mapping (#[]=) and
querying the value associated to a key (#[]). Key-value mappings can also be
deleted (#delete).
Keys are unique within a hash. When adding a key-value mapping with a key that
is already in use, the old value will be forgotten.
# Create a new Hash for mapping String to Int32
hash = Hash(String, Int32).new
hash["one"] = 1
hash["two"] = 2
hash["one"] # => 1
Hash literals
can also be used to create a Hash:
{"one" => 1, "two" => 2}
Implementation is based on an open hash table.
Two objects refer to the same hash key when their hash value (Object#hash)
is identical and both objects are equal to each other (Object#==).
Enumeration follows the order that the corresponding keys were inserted.
NOTE When using mutable data types as keys, changing the value of a key after
it was inserted into the Hash may lead to undefined behaviour. This can be
restored by re-indexing the hash with #rehash.
Included Modules
- Enumerable({K, V})
- Iterable({K, V})
Defined in:
remilib/rsconf/torsconf.crConstructors
Instance Method Summary
-
#toRsconf(builder : RemiLib::RSConf::Builder) : Nil
Serializes this Hash into RSConf.
Instance methods inherited from class Object
toRsconf(io : IO, *, indentSize : Int = 2, alwaysQuoteKeys : Bool = false, explicitRootObject : Bool = false, commaAfterValues : Bool = false, extraNewlineBetweenToplevelKeys : Bool = false) : NiltoRsconf(*, indentSize : Int = 2, alwaysQuoteKeys : Bool = false, explicitRootObject : Bool = false, commaAfterValues : Bool = false, extraNewlineBetweenToplevelKeys : Bool = false) : String toRsconf
Class methods inherited from class Object
fromRsconf(toplevel : RemiLib::RSConf::RSValue)fromRsconf(data : String | IO | Path) fromRsconf
Constructor Detail
Instance Method Detail
Serializes this Hash into RSConf.
Keys are serialized by invoking toRsconf_object_key on them.
Values are serialized with the usual #toRsconf(builder : ::RemiLib::RSConf::Builder)
method.