Name
SPVM::Hash - Hash (Associative Array)
Description
The Hash class of SPVM has methods to manipulate hashes(associative arrays).
Usage
use Hash;
my $book = Hash->new;
my $book = Hash->new({id => 4, name => "Perl", price => 3000.0});
$book->set_int(id => 4);
$book->set_string(name => "Perl");
$book->set_double(price => 3000.0);
$book->set(point => Point->new(1, 2));
my $id = $book->get_int("id");
my $name = $book->get_string("name");
my $price = $book->get_double("price");
my $point = (Point)$book->get("point");
Details
The hash function is siphash-1-3
.
Interfaces
Fields
keys_length
has keys_length : ro int;
The length of the keys in the hash.
Class Methods
new
static method new : Hash ($key_values : object[] = undef);
Creates a new Hash object given key-value pairs $key_values.
Examples:
my $book = Hash->new;
my $book = Hash->new({});
my $book = Hash->new({id => 4, name => "Perl"});
Instance Methods
copy
method copy : Hash ();
Creates a new Hash object, and copies the keys and values of the current hash to the new hash, and returns it.
This is not deep copy. The keys are got by "keys" method. The values are got by "get" method.
clone
method clone : Hash ();
The alias for "copy" method.
delete
method delete : object ($key : string);
Deletes the key and value given by the key $key.
The deleted value is returned.
Exceptions:
The key $key must be defined. Otherwise, an exception is thrown.
exists
method exists : int ($key : string);
Checks if the value specified by the key $key exists. If it exists, returns 1. Otherwise returns 0.
keys
method keys : string[] ();
Gets the keys in the hash. This method does not copy the strings.
values
method values : object[] ();
Gets all the values in the hash.
get
method get : object ($key : string);
Gets the value specifed by the key $key, and returns it.
If the value does not exist, returns undef.
Exceptions:
The key $key must be defined. Otherwise, an exception is thrown.
weaken
method weaken : void ($key : string));
Enables a weaken reference of the field that stores the value specifed by the key $key if the value exists.
Exceptions:
The key $key must be defined. Otherwise, an exception is thrown.
unweaken
method unweaken : void ($key : string);
Disables a weaken reference of the field that stores the value specifed by the key $key if the value exists.
Exceptions:
The key $key must be defined. Otherwise, an exception is thrown.
isweak
method isweak : int ($key : string)
If the field that stores the value specifed by the key $key is weakened, returns 1, otherwise returns 0.
Exceptions:
The key $key must be defined. Otherwise, an exception is thrown.
get_byte
method get_byte : int ($key : string);
Gets the value specifed by the key $key using the "get" method, and casts it to byte type, and casts it to int type, and returns it.
Exceptions:
The type of the value for the key must be Byte. Otherwise, an exception is thrown.
get_short
method get_short : int ($key : string);
Gets the value specifed by the key $key using the "get" method, and casts it to int value, and returns it.
Exceptions:
The type of the value for the key must be Short or Byte. Otherwise, an exception is thrown.
get_int
method get_int : int ($key : string);
Gets the value specifed by the key $key using the "get" method, and casts it to int value, and returns it.
Exceptions:
The type of the value for the key must be Int, Short, or Byte. Otherwise, an exception is thrown.
get_long
method get_long : long ($key : string);
Gets the value specifed by the key $key using the "get" method, and casts it to long value, and returns it.
Exceptions:
The type of the value for the key must be Long, Int, Short, or Byte. Otherwise, an exception is thrown.
get_float
method get_float : float ($key : string);
Gets the value specifed by the key $key using the "get" method, and casts it to float type, and returns it.
Exceptions:
The type of the value for the key must be Float. Otherwise, an exception is thrown.
get_double
method get_double : double ($key : string);
Gets the value specifed by the key $key using the "get" method, and casts it to double type, and returns it.
Exceptions:
The type of the value for the key must be Double. Otherwise, an exception is thrown.
get_string
method get_string : string ($key : string)
Gets the value specifed by the key $key using the "get" method, and casts it to string type, and returns it.
Exceptions:
The type of the value for the key must be string type. Otherwise, an exception is thrown.
set
method set : void ($key : string, $value : object);
Sets $value to the hash by the key $key.
Exceptions:
The key $key must be defined. Otherwise, an exception is thrown.
set_byte
method set_byte : void ($key : string, $value : int);
The value $value is converted to a Byte object, and sets it to the hash by the key $key using the "set" method.
set_short
method set_short : void ($key : string, $value : int);
The value $value is converted to a Short object, and sets it to the hash by the key $key using the "set" method.
set_int
method set_int : void ($key : string, $value : int);
The value $value is converted to an Int object, and sets it to the hash by the key $key using the "set" method.
set_long
method set_long : void ($key : string, $value : long);
The value $value is converted to a Long object, and sets it to the hash by the key $key using the "set" method.
set_float
method set_float : void ($key : string, $value : float);
The value $value is converted to a Float object, and sets it to the hash by the key $key using the "set" method.
set_double
method set_double : void ($key : string, $value : double);
The value $value is converted to a Double object, and sets it to the hash by the key $key using the "set" method.
set_string
method set_string : void ($key : string, $value : string);
Sets the string $value to the hash by the key $key using the "set" method.
to_array
method to_array : object[] ($sort : int = 0);
Converts all the key-value pairs in the hash to an array, and returns it.
If the option $sort is a positive value, the keys are sorted by ascendant order.
If the option $sort is a negative value, the keys are sorted by decendant order.
get_or_default_byte
method get_or_default_byte : int ($key : string, $default : int;
If the value specified by the key $key exists, this method calls "get_byte" method , and returns the return value of "get_byte" method.
If the value specified by the key $key does not exists, returns the default value $default.
get_or_default_short
method get_or_default_short : int ($key : string, $default : int;
If the value specified by the key $key exists, this method calls "get_short" method , and returns the return value of "get_short" method.
If the value specified by the key $key does not exists, returns the default value $default.
get_or_default_int
method get_or_default_int : int ($key : string, $default : int;
If the value specified by the key $key exists, this method calls "get_int" method , and returns the return value of "get_int" method.
If the value specified by the key $key does not exists, returns the default value $default.
get_or_default_long
method get_or_default_long : long ($key : string, $default : long;
If the value specified by the key $key exists, this method calls "get_long" method , and returns the return value of "get_long" method.
If the value specified by the key $key does not exists, returns the default value $default.
get_or_default_float
method get_or_default_float : float ($key : string, $default : float;
If the value specified by the key $key exists, this method calls "get_float" method , and returns the return value of "get_float" method.
If the value specified by the key $key does not exists, returns the default value $default.
get_or_default_double
method get_or_default_double : double ($key : string, $default : double;
If the value specified by the key $key exists, this method calls "get_double" method , and returns the return value of "get_double" method.
If the value specified by the key $key does not exists, returns the default value $default.
get_or_default_string
method get_or_default_string : string ($key : string, $default : string;
If the value specified by the key $key exists, this method calls "get_string" method , and returns the return value of "get_string" method.
If the value specified by the key $key does not exists, returns the default value $default.
get_or_default
method get_or_default : object ($key : string, $default : object;
If the value specified by the key $key exists, this method calls "get" method , and returns the return value of "get" method.
If the value specified by the key $key does not exists, returns the default value $default.
delete_or_default_byte
method delete_or_default_byte : int ($key : string, $default : int;
If the value specified by the key $key exists, this method calls "get_byte" method and "delete" method, and returns the return value of "get_byte" method.
If the value specified by the key $key does not exists, returns the default value $default.
delete_or_default_short
method delete_or_default_short : int ($key : string, $default : int;
If the value specified by the key $key exists, this method calls "get_short" method and "delete" method, and returns the return value of "get_short" method.
If the value specified by the key $key does not exists, returns the default value $default.
delete_or_default_int
method delete_or_default_int : int ($key : string, $default : int;
If the value specified by the key $key exists, this method calls "get_int" method and "delete" method, and returns the return value of "get_int" method.
If the value specified by the key $key does not exists, returns the default value $default.
delete_or_default_long
method delete_or_default_long : long ($key : string, $default : long;
If the value specified by the key $key exists, this method calls "get_long" method and "delete" method, and returns the return value of "get_long" method.
If the value specified by the key $key does not exists, returns the default value $default.
delete_or_default_float
method delete_or_default_float : float ($key : string, $default : float;
If the value specified by the key $key exists, this method calls "get_float" method and "delete" method, and returns the return value of "get_float" method.
If the value specified by the key $key does not exists, returns the default value $default.
delete_or_default_double
method delete_or_default_double : double ($key : string, $default : double;
If the value specified by the key $key exists, this method calls "get_double" method and "delete" method, and returns the return value of "get_double" method.
If the value specified by the key $key does not exists, returns the default value $default.
delete_or_default_string
method delete_or_default_string : string ($key : string, $default : string;
If the value specified by the key $key exists, this method calls "get_string" method and "delete" method, and returns the return value of "get_string" method.
If the value specified by the key $key does not exists, returns the default value $default.
delete_or_default
method delete_or_default : object ($key : string, $default : object;
If the value specified by the key $key exists, this method calls "get" method and "delete" method, and returns the return value of "get" method.
If the value specified by the key $key does not exists, returns the default value $default.
Copyright & License
Copyright (c) 2023 Yuki Kimoto
MIT License