Name

SPVM::Array - Array Utilities

Usage

use Array;

# Copy a byte array
{
  my $array = [(byte)1, 2, 3];
  my $array_copy = Array->copy_byte($array);
}

# Copy a short array
{
  my $array = [(short)1, 2, 3];
  my $array_copy = Array->copy_short($array);
}

# Copy a int array
{
  my $array = [1, 2, 3];
  my $array_copy = Array->copy_int($array);
}

# Copy a long array
{
  my $array = [(long)1, 2, 3];
  my $array_copy = Array->copy_long($array);
}

# Copy a float array
{
  my $array = [1.5f, 2.5f, 3.5f];
  my $array_copy = Array->copy_float($array);
}

# Copy a double array
{
  my $array = [1.5, 2.5, 3.5];
  my $array_copy = Array->copy_double($array);
}

# Copy a string array
{
  my $array = ["abc", "def", "ghi"]
  my $array_copy = Array->copy_string($array);
}

# Check if the two byte arrays equal
{
  my $array1 = [(byte)1, 2];
  my $array2 = [(byte)1, 2];
  my $ret = Array->equals_byte($array1, $array2);
}

# Check if the two short arrays equal
{
  my $array1 = [(short)1, 2];
  my $array2 = [(short)1, 2];
  my $ret = Array->equals_short($array1, $array2);
}

# Check if the two int arrays equal
{
  my $array1 = [(int)1, 2];
  my $array2 = [(int)1, 2];
  my $ret = Array->equals_int($array1, $array2);
}

# Check if the two long arrays equal
{
  my $array1 = [(long)1, 2];
  my $array2 = [(long)1, 2];
  my $ret = Array->equals_long($array1, $array2);
}

# Check if the two float arrays equal
{
  my $array1 = [(float)1, 2];
  my $array2 = [(float)1, 2];
  my $ret = Array->equals_float($array1, $array2);
}

# Check if the two double arrays equal
{
  my $array1 = [(double)1, 2];
  my $array2 = [(double)1, 2];
  my $ret = Array->equals_double($array1, $array2);
}

# Check if the two string arrays equal
{
  my $array1 = ["abc", "def"];
  my $array2 = ["abc", "def"];
  my $ret = Array->equals_string($array1, $array2);
}

# Copy object array
my $array = [(object)Int->new(1), Int->new(2), Int->new(3)];
my $array_copy = Array->copy_object($array, method : object ($obj : object) {
  my $int_obj = (Int)$obj;
  my $new_int_obj = Int->new($int_obj->value);
  return $new_int_obj;
});

Description

Array provides array utilities.

Class Methods

copy_byte

static method copy_byte : byte[] ($array : byte[], $offset : int = 0, $length : int = -1);

Create a new byte array with $length, and copy the elements from $offset to the position proceeded by $length to the created array.

If $length is less than 0, it is the length of $array minus $offset.

Exceptions:

$array must be defined. Otherwise an exception is thrown.

$offset must be greater than or equal to 0. Otherwise an exception is thrown.

$offset + $length must be less than or equal to the length of $array. Otherwise an exception is thrown.

copy_double

static method copy_double : double[] ($array : double[], $offset : int = 0, $length : int = -1);

Create a new double array with $length, and copy the elements from $offset to the position proceeded by $length to the created array.

If $length is less than 0, it is the length of $array minus $offset.

If the array is not defined, return undef.

Exceptions:

$array must be defined. Otherwise an exception is thrown.

$offset must be greater than or equal to 0. Otherwise an exception is thrown.

$offset + $length must be less than or equal to the length of $array. Otherwise an exception is thrown.

copy_float

static method copy_float : float[] ($array : float[], $offset : int = 0, $length : int = -1);

Create a new float array with $length, and copy the elements from $offset to the position proceeded by $length to the created array.

If $length is less than 0, it is the length of $array minus $offset.

Exceptions:

$array must be defined. Otherwise an exception is thrown.

$offset must be greater than or equal to 0. Otherwise an exception is thrown.

$offset + $length must be less than or equal to the length of $array. Otherwise an exception is thrown.

copy_int

static method copy_int : int[] ($array : int[], $offset : int = 0, $length : int = -1);

Create a new int array with $length, and copy the elements from $offset to the position proceeded by $length to the created array.

If $length is less than 0, it is the length of $array minus $offset.

Exceptions:

$array must be defined. Otherwise an exception is thrown.

$offset must be greater than or equal to 0. Otherwise an exception is thrown.

$offset + $length must be less than or equal to the length of $array. Otherwise an exception is thrown.

copy_long

static method copy_long : long[] ($array : long[], $offset : int = 0, $length : int = -1);

Create a new long array with $length, and copy the elements from $offset to the position proceeded by $length to the created array.

If $length is less than 0, it is the length of $array minus $offset.

Exceptions:

$array must be defined. Otherwise an exception is thrown.

$offset must be greater than or equal to 0. Otherwise an exception is thrown.

$offset + $length must be less than or equal to the length of $array. Otherwise an exception is thrown.

copy_object

static method copy_object : object[] ($array : object[], $cloner : Cloner = undef, $offset : int = 0, $legnth : int = -1);

Create a new object array with $length, and clone the elements of the object array from $offset to the position proceeded by $length to the created array.

Each element is cloned by Cloner.

If the cloner is not defined, the address of each element is copied.

If $length is less than 0, it is the length of $array minus $offset.

Exceptions:

$array must be defined. Otherwise an exception is thrown.

$offset must be greater than or equal to 0. Otherwise an exception is thrown.

$offset + $length must be less than or equal to the length of $array. Otherwise an exception is thrown.

copy_object_address

static method copy_object_address : object[] ($array : object[], $offset : int = 0, $legnth : int = -1);

The alias for the following code using "copy_object".

my $ret = &copy_object($array, undef, $offset, $length);

copy_short

static method copy_short : short[] ($array : short[], $offset : int = 0, $length : int = -1);

Create a new short array with $length, and copy the elements from $offset to the position proceeded by $length to the created array.

If $length is less than 0, it is the length of $array minus $offset.

Exceptions:

$array must be defined. Otherwise an exception is thrown.

$offset must be greater than or equal to 0. Otherwise an exception is thrown.

$offset + $length must be less than or equal to the length of $array. Otherwise an exception is thrown.

copy_string

static method copy_string : string[] ($array : string[], $offset : int = 0, $length : int = -1);

Create a new string array with $length, and copy the elements of the string array using copy operator from $offset to the position proceeded by $length to the created array.

If $length is less than 0, it is the length of $array minus $offset.

Exceptions:

$array must be defined. Otherwise an exception is thrown.

$offset must be greater than or equal to 0. Otherwise an exception is thrown.

$offset + $length must be less than or equal to the length of $array. Otherwise an exception is thrown.

copy_string_address

static method copy_string_address : string[] ($array : string[], $offset : int = 0, $length : int = -1);

Create a new string array with $length, and copy the addresses of the elements of the string array from $offset to the position proceeded by $length to the created array.

If $length is less than 0, it is the length of $array minus $offset.

Exceptions:

$array must be defined. Otherwise an exception is thrown.

$offset must be greater than or equal to 0. Otherwise an exception is thrown.

$offset + $length must be less than or equal to the length of $array. Otherwise an exception is thrown.

dump_unsigned_byte

static method dump_unsigned_byte : string ($array : byte[]);

Same as the following code using the dump operator operator, but the elements are displayed as unsigned 8-bit integer.

my $ret = dump $array;

dump_unsigned_int

static method dump_unsigned_int : string ($array : int[]);

Same as the following code using the dump operator operator, but the elements are displayed as unsigned 32-bit integer.

my $ret = dump $array;

dump_unsigned_long

static method dump_unsigned_long : string ($array : long[]);

Same as the following code using the dump operator operator, but the elements are displayed as unsigned 64-bit integer.

my $ret = dump $array;

dump_unsigned_short

static method dump_unsigned_short : string ($array : short[]);

Same as the following code using the dump operator operator, but the elements are displayed as unsigned 16-bit integer.

my $ret = dump $array;

equals_byte

static method equals_byte : int ($array1 : byte[], $array2 : byte[]);

If $array1 is not defined and $array2 is not defined, returns 1.

If $array1 is defined and $array2 is not defined, returns 0.

If $array1 is not defined, $array2 is defined, returns 0.

If $array1 is defined and $array2 is defined and the all elements of $array1 are equal to all elements of $array2, returns 1.

Otherwise return 0.

equals_double

static method equals_double : int ($array1 : double[], $array2 : double[]);

If $array1 is not defined and $array2 is not defined, returns 1.

If $array1 is defined and $array2 is not defined, returns 0.

If $array1 is not defined, $array2 is defined, returns 0.

If $array1 is defined and $array2 is defined and the all elements of $array1 are equal to all elements of $array2, returns 1.

Otherwise return 0.

equals_float

static method equals_float : int ($array1 : float[], $array2 : float[]);

If $array1 is not defined and $array2 is not defined, returns 1.

If $array1 is defined and $array2 is not defined, returns 0.

If $array1 is not defined, $array2 is defined, returns 0.

If $array1 is defined and $array2 is defined and the all elements of $array1 are equal to all elements of $array2, returns 1.

Otherwise return 0.

equals_int

static method equals_int : int ($array1 : int[], $array2 : int[]);

If $array1 is not defined and $array2 is not defined, returns 1.

If $array1 is defined and $array2 is not defined, returns 0.

If $array1 is not defined, $array2 is defined, returns 0.

If $array1 is defined and $array2 is defined and the all elements of $array1 are equal to all elements of $array2, returns 1.

Otherwise return 0.

equals_long

static method equals_long : int ($array1 : long[], $array2 : long[]);

If $array1 is not defined and $array2 is not defined, returns 1.

If $array1 is defined and $array2 is not defined, returns 0.

If $array1 is not defined, $array2 is defined, returns 0.

If $array1 is defined and $array2 is defined and the all elements of $array1 are equal to all elements of $array2, returns 1.

Otherwise return 0.

equals_object

static method static method equals_object : int ($array1 : object[], $array2 : object[], $equality_checker : EqualityChecker);

If $array1 is not defined and $array2 is not defined, returns 1.

If $array1 is defined and $array2 is not defined, returns 0.

If $array1 is not defined, $array2 is defined, returns 0.

If $array1 is defined and $array2 is defined and the all elements of $array1 are equal to all elements of $array2 using the equality checker, returns 1.

The equality checker is not defined, the address is used to check the equality.

Otherwise return 0.

equals_object_address

static method equals_object_address : int ($array1 : object[], $array2 : object[]);

The alias for the following code using "equals_object".

my $ret = &equals_object($array1, $array2, undef);

equals_short

static method equals_short : int ($array1 : short[], $array2 : short[]);

If $array1 is not defined and $array2 is not defined, returns 1.

If $array1 is defined and $array2 is not defined, returns 0.

If $array1 is not defined, $array2 is defined, returns 0.

If $array1 is defined and $array2 is defined and the all elements of $array1 are equal to all elements of $array2, returns 1.

Otherwise return 0.

equals_string

static method equals_string : int ($array1 : string[], $array2 : string[]);

If $array1 is not defined and $array2 is not defined, returns 1.

If $array1 is defined and $array2 is not defined, returns 0.

If $array1 is not defined, $array2 is defined, returns 0.

If $array1 is defined and $array2 is defined and the all elements of $array1 are equal to all elements of $array2 using the eq operator, returns 1.

Otherwise return 0.

equals_string_address

static method equals_string_address : int ($array1 : string[], $array2 : string[]);

The alias for the following code using "equals_object_address".

my $ret = &equals_object_address($array1, $array2);

memcpy_byte

static method memcpy_byte : void ($dest : byte[], $dest_offset : int, $source : byte[], $source_offset : int, $length : int);

Copy the range of the elements of $source byte array to the range of the elements of $dest byte array.

The range of the elements of $source array is from $offset to the position proceeded by $length of the source.

The range of the elements of $dest array is from $dest_offset to $dest_offset + $length.

If the range of the elements of $source array and the range of the elements of $dest array overlap, the result is not guaranteed.

Exceptions:

$dest must be defined. Otherwise an exception is thrown.

$source must be defined. Otherwise an exception is thrown.

$length must be greater than or equal to 0. Otherwise an exception is thrown.

$dest_offset must be greater than or equal to 0. Otherwise an exception is thrown.

$source_offset must be greater than or equal to 0. Otherwise an exception is thrown.

$dest_offset + $length must be less than or equal to the length of $dest. Otherwise an exception is thrown.

$source_offset + $length must be less than or equal to the length of $source. Otherwise an exception is thrown.

memcpy_double

static method memcpy_double : void ($dest : double[], $dest_offset : int, $source : double[], $source_offset : int, $length : int);

Copy the range of the elements of $source double array to the range of the elements of $dest double array.

The range of the elements of $source array is from $offset to the position proceeded by $length of the source.

The range of the elements of $dest array is from $dest_offset to $dest_offset + $length.

If the range of the elements of $source array and the range of the elements of $dest array overlap, the result is not guaranteed.

Exceptions:

$dest must be defined. Otherwise an exception is thrown.

$source must be defined. Otherwise an exception is thrown.

$length must be greater than or equal to 0. Otherwise an exception is thrown.

$dest_offset must be greater than or equal to 0. Otherwise an exception is thrown.

$source_offset must be greater than or equal to 0. Otherwise an exception is thrown.

$dest_offset + $length must be less than or equal to the length of $dest. Otherwise an exception is thrown.

$source_offset + $length must be less than or equal to the length of $source. Otherwise an exception is thrown.

memcpy_float

static method memcpy_float : void ($dest : float[], $dest_offset : int, $source : float[], $source_offset : int, $length : int);

Copy the range of the elements of $source float array to the range of the elements of $dest float array.

The range of the elements of $source array is from $offset to the position proceeded by $length of the source.

The range of the elements of $dest array is from $dest_offset to $dest_offset + $length.

If the range of the elements of $source array and the range of the elements of $dest array overlap, the result is not guaranteed.

Exceptions:

$dest must be defined. Otherwise an exception is thrown.

$source must be defined. Otherwise an exception is thrown.

$length must be greater than or equal to 0. Otherwise an exception is thrown.

$dest_offset must be greater than or equal to 0. Otherwise an exception is thrown.

$source_offset must be greater than or equal to 0. Otherwise an exception is thrown.

$dest_offset + $length must be less than or equal to the length of $dest. Otherwise an exception is thrown.

$source_offset + $length must be less than or equal to the length of $source. Otherwise an exception is thrown.

memcpy_int

static method memcpy_int : void ($dest : int[], $dest_offset : int, $source : int[], $source_offset : int, $length : int);

Copy the range of the elements of $source int array to the range of the elements of $dest int array.

The range of the elements of $source array is from $offset to the position proceeded by $length of the source.

The range of the elements of $dest array is from $dest_offset to $dest_offset + $length.

If the range of the elements of $source array and the range of the elements of $dest array overlap, the result is not guaranteed.

Exceptions:

$dest must be defined. Otherwise an exception is thrown.

$source must be defined. Otherwise an exception is thrown.

$length must be greater than or equal to 0. Otherwise an exception is thrown.

$dest_offset must be greater than or equal to 0. Otherwise an exception is thrown.

$source_offset must be greater than or equal to 0. Otherwise an exception is thrown.

$dest_offset + $length must be less than or equal to the length of $dest. Otherwise an exception is thrown.

$source_offset + $length must be less than or equal to the length of $source. Otherwise an exception is thrown.

memcpy_long

static method memcpy_long : void ($dest : long[], $dest_offset : int, $source : long[], $source_offset : int, $length : int);

Copy the range of the elements of $source long array to the range of the elements of $dest long array.

The range of the elements of $source array is from $offset to the position proceeded by $length of the source.

The range of the elements of $dest array is from $dest_offset to $dest_offset + $length.

If the range of the elements of $source array and the range of the elements of $dest array overlap, the result is not guaranteed.

Exceptions:

$dest must be defined. Otherwise an exception is thrown.

$source must be defined. Otherwise an exception is thrown.

$length must be greater than or equal to 0. Otherwise an exception is thrown.

$dest_offset must be greater than or equal to 0. Otherwise an exception is thrown.

$source_offset must be greater than or equal to 0. Otherwise an exception is thrown.

$dest_offset + $length must be less than or equal to the length of $dest. Otherwise an exception is thrown.

$source_offset + $length must be less than or equal to the length of $source. Otherwise an exception is thrown.

memcpy_object_address

static method memcpy_object_address : void ($dest : object[], $dest_offset : int, $source : object[], $source_offset : int, $length : int);

Copy the range of the elements of $source object array to the range of the elements of $dest object array.

Each address is copied.

The range of the elements of $source array is from $offset to the position proceeded by $length of the source.

The range of the elements of $dest array is from $dest_offset to $dest_offset + $length.

If the range of the elements of $source array and the range of the elements of $dest array overlap, the result is not guaranteed.

Exceptions:

$dest must be defined. Otherwise an exception is thrown.

$source must be defined. Otherwise an exception is thrown.

$length must be greater than or equal to 0. Otherwise an exception is thrown.

$dest_offset must be greater than or equal to 0. Otherwise an exception is thrown.

$source_offset must be greater than or equal to 0. Otherwise an exception is thrown.

$dest_offset + $length must be less than or equal to the length of $dest. Otherwise an exception is thrown.

$source_offset + $length must be less than or equal to the length of $source. Otherwise an exception is thrown.

memcpy_short

static method memcpy_short : void ($dest : short[], $dest_offset : int, $source : short[], $source_offset : int, $length : int);

Copy the range of the elements of $source short array to the range of the elements of $dest short array.

The range of the elements of $source array is from $offset to the position proceeded by $length of the source.

The range of the elements of $dest array is from $dest_offset to $dest_offset + $length.

If the range of the elements of $source array and the range of the elements of $dest array overlap, the result is not guaranteed.

Exceptions:

$dest must be defined. Otherwise an exception is thrown.

$source must be defined. Otherwise an exception is thrown.

$length must be greater than or equal to 0. Otherwise an exception is thrown.

$dest_offset must be greater than or equal to 0. Otherwise an exception is thrown.

$source_offset must be greater than or equal to 0. Otherwise an exception is thrown.

$dest_offset + $length must be less than or equal to the length of $dest. Otherwise an exception is thrown.

$source_offset + $length must be less than or equal to the length of $source. Otherwise an exception is thrown.

memcpy_string_address

static method memcpy_string_address : void ($dest : string[], $dest_offset : int, $source : string[], $source_offset : int, $length : int);

The alias for "memcpy_object_address".

memmove_byte

static method memmove_byte : void ($dest : byte[], $dest_offset : int, $source : byte[], $source_offset : int, $length : int);

The same as "memcpy_byte", but even if the range of the source and the range of the destination overlap, the result is guaranteed.

memmove_double

static method memmove_double : void ($dest : double[], $dest_offset : int, $source : double[], $source_offset : int, $length : int);

The same as "memcpy_double", but even if the range of the source and the range of the destination overlap, the result is guaranteed.

memmove_float

static method memmove_float : void ($dest : float[], $dest_offset : int, $source : float[], $source_offset : int, $length : int);

The same as "memcpy_float", but even if the range of the source and the range of the destination overlap, the result is guaranteed.

memmove_int

static method memmove_int : void ($dest : int[], $dest_offset : int, $source : int[], $source_offset : int, $length : int);

The same as "memcpy_int", but even if the range of the source and the range of the destination overlap, the result is guaranteed.

memmove_long

static method memmove_long : void ($dest : long[], $dest_offset : int, $source : long[], $source_offset : int, $length : int);

The same as "memcpy_long", but even if the range of the source and the range of the destination overlap, the result is guaranteed.

memmove_object_address

static method memmove_object_address : void ($dest : object[], $dest_offset : int, $source : object[], $source_offset : int, $length : int);

The same as "memcpy_object_address", but even if the range of the source and the range of the destination overlap, the result is guaranteed.

memmove_short

static method memmove_short : void ($dest : short[], $dest_offset : int, $source : short[], $source_offset : int, $length : int);

The same as "memcpy_short", but even if the range of the source and the range of the destination overlap, the result is guaranteed.

memmove_string_address

static method memmove_string_address : void ($dest : string[], $dest_offset : int, $source : string[], $source_offset : int, $length : int);

The same as the following code using "memmove_object_address".

&memmove_object_address($dest, $dest_offset, $source, $source_offset, $length);

memset_byte

static method memset_byte : void ($array : byte[], $element : int, $offset : int = 0, $length : int = -1);

Set the range of the elements of the byte array to $element.

The range of the elements of $array is from $offset to the position proceeded by $length.

If $length is less than 0, it is the length of $array minus $offset.

Exceptions:

$array must be defined.

$offset must be greater than or equal to 0. Otherwise an exception is thrown.

$offset + $length must be less than or equal to the length of $array. Otherwise an exception is thrown.

memset_double

static method memset_double : void ($array : double[], $element : double, $offset : int = 0, $length : int = -1);

Set the range of the elements of the double array to $element.

The range of the elements of $array is from $offset to the position proceeded by $length.

If $length is less than 0, it is the length of $array minus $offset.

Exceptions:

$array must be defined. Otherwise an exception is thrown.

$offset must be greater than or equal to 0. Otherwise an exception is thrown.

$offset + $length must be less than or equal to the length of $array. Otherwise an exception is thrown.

memset_float

static method memset_float : void ($array : float[], $element : float, $offset : int = 0, $length : int = -1);

Set the range of the elements of the float array to $element.

The range of the elements of $array is from $offset to the position proceeded by $length.

If $length is less than 0, it is the length of $array minus $offset.

Exceptions:

$array must be defined. Otherwise an exception is thrown.

$offset must be greater than or equal to 0. Otherwise an exception is thrown.

$offset + $length must be less than or equal to the length of $array. Otherwise an exception is thrown.

memset_int

static method memset_int : void ($array : int[], $element : int, $offset : int = 0, $length : int = -1);

Set the range of the elements of the int array to $element.

The range of the elements of $array is from $offset to the position proceeded by $length.

If $length is less than 0, it is the length of $array minus $offset.

Exceptions:

$array must be defined. Otherwise an exception is thrown.

$offset must be greater than or equal to 0. Otherwise an exception is thrown.

$offset + $length must be less than or equal to the length of $array. Otherwise an exception is thrown.

memset_long

static method memset_long : void ($array : long[], $element : long, $offset : int = 0, $length : int = -1);

Set the range of the elements of the long array to $element.

The range of the elements of $array is from $offset to the position proceeded by $length.

If $length is less than 0, it is the length of $array minus $offset.

Exceptions:

$array must be defined. Otherwise an exception is thrown.

$offset must be greater than or equal to 0. Otherwise an exception is thrown.

$offset + $length must be less than or equal to the length of $array. Otherwise an exception is thrown.

memset_object

static method memset_object : void ($array : object[], $element : object, $offset : int = 0, $length : int = -1);

Set the range of the elements of the object $array to $element.

The range of the elements of $array is from $offset to the position proceeded by $length.

If $length is less than 0, it is the length of $array minus $offset.

Exceptions:

$array must be defined. Otherwise an exception is thrown.

$offset must be greater than or equal to 0. Otherwise an exception is thrown.

$offset + $length must be less than or equal to the length of $array. Otherwise an exception is thrown.

memset_short

static method memset_short : void ($array : short[], $element : int, $offset : int = 0, $length : int = -1);

Set the range of the elements of the short $array to $element.

The range of the elements of $array is from $offset to the position proceeded by $length.

If $length is less than 0, it is the length of $array minus $offset.

Exceptions:

$array must be defined. Otherwise an exception is thrown.

$offset must be greater than or equal to 0. Otherwise an exception is thrown.

$offset + $length must be less than or equal to the length of $array. Otherwise an exception is thrown.

memset_string

static method memset_string : void ($array : string[], $element : string, $offset : int = 0, $length : int = -1);

The alias for the following code using "memset_object".

&memset_object($dest, $element, $dest_offset, $length);

merge_byte

static method merge_byte : byte[] ($array1 : byte[], $array2 : byte[]);

Creates a new array by merging the array $array1 and the array $array2, and returns it.

Exceptions:

\$array1 must be defined. Otherwise an exception is thrown.

\$array2 must be defined. Otherwise an exception is thrown.

merge_short

static method merge_short : short[] ($array1 : short[], $array2 : short[]);

Creates a new array by merging the array $array1 and the array $array2, and returns it.

Exceptions:

\$array1 must be defined. Otherwise an exception is thrown.

\$array2 must be defined. Otherwise an exception is thrown.

merge_int

static method merge_int : int[] ($array1 : int[], $array2 : int[]);

Creates a new array by merging the array $array1 and the array $array2, and returns it.

Exceptions:

\$array1 must be defined. Otherwise an exception is thrown.

\$array2 must be defined. Otherwise an exception is thrown.

merge_long

static method merge_long : long[] ($array1 : long[], $array2 : long[]);

Creates a new array by merging the array $array1 and the array $array2, and returns it.

Exceptions:

\$array1 must be defined. Otherwise an exception is thrown.

\$array2 must be defined. Otherwise an exception is thrown.

merge_float

static method merge_float : float[] ($array1 : float[], $array2 : float[]);

Creates a new array by merging the array $array1 and the array $array2, and returns it.

Exceptions:

\$array1 must be defined. Otherwise an exception is thrown.

\$array2 must be defined. Otherwise an exception is thrown.

merge_double

static method merge_double : double[] ($array1 : double[], $array2 : double[]);

Creates a new array by merging the array $array1 and the array $array2, and returns it.

Exceptions:

\$array1 must be defined. Otherwise an exception is thrown.

\$array2 must be defined. Otherwise an exception is thrown.

merge_string

static method merge_string : string[] ($array1 : string[], $array2 : string[]);

Creates a new array by merging the array $array1 and the array $array2, and returns it.

Exceptions:

\$array1 must be defined. Otherwise an exception is thrown.

\$array2 must be defined. Otherwise an exception is thrown.

merge_object

static method merge_object : object[] ($array1 : object[], $array2 : object[]);

Creates a new array by merging the array $array1 and the array $array2, and returns it.

Exceptions:

\$array1 must be defined. Otherwise an exception is thrown.

\$array2 must be defined. Otherwise an exception is thrown.

new_proto

static method new_proto : object[] ($proto_array : object[], $length : int);

Create a new object array as the same type as $proto_array with $length.

Exceptions:

$prototype array must be defined. Otherwise an exception is thrown.

$length must be greater than or equal to 0. Otherwise an exception is thrown.

new_proto_any

static method new_proto_any : object ($proto_array : object, $length : int);

Same as "new_proto" method, but can give $proto_array of the type of a numeric array or a multi-numeric array and the return type is different.

shuffle_object

static method shuffle_object : void ($array : object[], $seed_ref : int*);

Shuffles the array $array in-place given the reference to a seed $seed_ref.

Exceptions:

$array must be defined. Otherwise an exception is thrown.

repeat_string

static method repeat_string : string[] ($strings : string[], $count : int);

Creates a new array that repeats the string $strings $count times, and returns it.

Exceptions:

$strings must be defined. Otherwise an exception is thrown.

$count must be greater than or equal to 0. Otherwise an exception is thrown.

copy_object_with_proto

static method copy_object_with_proto : object[] ($array : object[], $proto : object[], $cloner : Cloner = undef, $offset : int = 0, $length : int = -1);

The same as "copy_object", but can give the prototype array $proto for the copied array.

copy_object_address_with_proto

static method copy_object_address_with_proto : object[] ($array : object[], $proto : object[], $offset : int = 0, $length : int = -1);

The same as "copy_object_address", but can give the prototype array $proto for the copied array.

to_object_array_byte

static method to_object_array_byte : Byte[] ($array : byte[]);

Creates a new Byte array with the same length as the byte array $array, copies the elements in $array to it, and returns it.

Exceptions:

The array $array must be defined. Otherwise, an exception is thrown.

to_object_array_short

static method to_object_array_short : Short[] ($array : short[]);

Creates a new Short array with the same length as the short array $array, copies the elements in $array to it, and returns it.

Exceptions:

The array $array must be defined. Otherwise, an exception is thrown.

to_object_array_int

static method to_object_array_int : Int[] ($array : int[]);

Creates a new Int array with the same length as the int array $array, copies the elements in $array to it, and returns it.

Exceptions:

The array $array must be defined. Otherwise, an exception is thrown.

to_object_array_long

static method to_object_array_long : Long[] ($array : long[]);

Creates a new Long array with the same length as the long array $array, copies the elements in $array to it, and returns it.

Exceptions:

The array $array must be defined. Otherwise, an exception is thrown.

to_object_array_float

static method to_object_array_float : Float[] ($array : float[]);

Creates a new Float array with the same length as the float array $array, copies the elements in $array to it, and returns it.

to_object_array_double

static method to_object_array_double : Double[] ($array : double[]);

Creates a new Double array with the same length as the double array $array, copies the elements in $array to it, and returns it.

Exceptions:

The array $array must be defined. Otherwise, an exception is thrown.

to_array_byte

static method to_array_byte : byte[] ($object_array : Byte[]);

Creates a new byte array with the same length as Byte array $object_array, copies the elements in $array to it, and returns it.

Exceptions:

The array $array must be defined. Otherwise, an exception is thrown.

to_array_short

static method to_array_short : short[] ($object_array : Short[]);

Creates a new short array with the same length as Short> array $object_array, copies the elements in $array to it, and returns it.

Exceptions:

The array $object_array must be defined. Otherwise, an exception is thrown.

to_array_int

static method to_array_int : int[] ($object_array : Int[]);>

Creates a new int array with the same length as Int array $object_array, copies the elements in $array to it, and returns it.

Exceptions:

The array $object_array must be defined. Otherwise, an exception is thrown.

to_array_long

static method to_array_long : long[] ($object_array : Long[]);

Creates a new long array with the same length as Long array $object_array, copies the elements in $array to it, and returns it.

Exceptions:

The array $object_array must be defined. Otherwise, an exception is thrown.

to_array_float

static method to_array_float : float[] ($object_array : Float[]);

Creates a new float array with the same length as Float array $object_array, copies the elements in $array to it, and returns it.

Exceptions:

The array $object_array must be defined. Otherwise, an exception is thrown.

to_array_double

static method to_array_double : double[] ($object_array : Double[]);

Creates a new double[ array with the same length as Double array $object_array, copies the elements in $array to it, and returns it.

Exceptions:

The array $object_array must be defined. Otherwise, an exception is thrown.

new_array_proto_element

static method new_array_proto_element : object[] ($proto_element : object, $length : int);

Create a new object array of the type when the prototype element $proto_element are arrayed with the length $length.

Exceptions:

The prototype element $proto_element must be defined. Otherwise an exception is thrown.

The length $length must be greater than or equal to 0. Otherwise an exception is thrown.

equals

static method equals : int ($array1 : object, $array2 : object, $shallow : int = 0);

Checks if the array $array1 and the array $array2 are equal.

The type of $array1 and $array2 must be a numeric array type, a multi-numeric array type, string array type, or an object array type.

Implementation:

If $array1 is not defined and $array2 is not defined, returns 1.

If $array1 is defined and $array2 is not defined, returns 0.

If $array1 is not defined, $array2 is defined, returns 0.

If the type of $array1 is not equal to the type of $array2, returns 0.

If the type of $array1 is a numeric array type or a muti-numeric type and every element of $array1 are equal to the corresponding index of element of $array2, returns 1, otherwise returns 0.

If the type of $array1 is string array type and $shallow is a false value, returns the return value of "equals_string" method.

If the type of $array1 is string array type and $shallow is a true value, returns the return value of "equals_string_address" method.

If the type of $array1 is an object array type and $shallow is a false value, returns the return value of "equals_object" method given EqualityChecker#default_equality_checker.

If the type of $array1 is an object array type and $shallow is a true value, returns the return value of "equals_object_address" method.

Exceptions:

The type of the array $array1 must be an array type. Otherwise, an exception is thrown.

The type of the array $array2 must be an array type. Otherwise, an exception is thrown.

The type of the $array must be a numeric array type, a multi-numeric array type, string array type, or an object array type. Otherwise, an exception is thrown.

copy_any_numeric

static method copy_any_numeric : object ($array : object, $offset : int = 0, $length : int = -1);

Create a new array of the same type of $array with $length, and copy the elements from $offset to the position proceeded by $length to the created array.

If $length is less than 0, it is the length of $array minus $offset.

Exceptions:

$array must be defined. Otherwise an exception is thrown.

The type of the array $array must be a numeric array type or a multi-numeric type.

$offset must be greater than or equal to 0. Otherwise an exception is thrown.

$offset + $length must be less than or equal to the length of $array. Otherwise an exception is thrown.

shuffle_any_numeric

static method shuffle_any_numeric : void ($array : object, $seed_ref : int*);

Shuffles the array $array in-place given the reference to a seed $seed_ref.

The type of $array must be a numeric type or a multi-numeric type.

Exceptions:

$array must be defined. Otherwise an exception is thrown.

The type of the array $array must be a numeric type or a multi-numeric type. Otherwise an exception is thrown.

shuffle

static method shuffle : void ($array : object, $seed_ref : int*);

Shuffles the array $array in-place given the reference to a seed $seed_ref.

The type of $array must be an object type, a numeric type or a multi-numeric type.

Exceptions:

$array must be defined. Otherwise an exception is thrown.

The type of $array must be an object type, a numeric type or a multi-numeric type.

repeat

static method repeat : object ($array : obejct, $count : int);

Retruns a new array that repeats the array $array $count times.

Exceptions:

The array $array must be defined. Otherwise an exception is thrown.

The type of the array $array must be an array type. Otherwise an exception is thrown.

The repeat count $count must be a non-negative integer. Otherwise an exception is thrown.

Copyright & License

Copyright (c) 2023 Yuki Kimoto

MIT License