ValueArray
Object Hierarchy:
Description:
[ Compact ]
[ Version ( deprecated = true , deprecated_since = "2.32" ) ]
public class ValueArray
Warning: ValueArray is deprecated since 2.32.
A `GValueArray` is a container structure to hold an array of generic values.
Use `GArray` instead, if possible for the given use case, as described above.
The prime purpose of a `GValueArray` is for it to be used as an object property that holds an array of values. A `GValueArray` wraps an array of `GValue` elements in order for it to be used as a boxed type through `G_TYPE_VALUE_ARRAY`.
`GValueArray` is deprecated in favour of `GArray` since GLib 2.32. It is possible to create a `GArray` that behaves like a `GValueArray` by using the size of `GValue` as the element size, and by setting [method@GObject.Value.unset] as the clear function using [ func@GLib.Array.set_clear_func], for instance, the following code:
```c GValueArray *array = g_value_array_new (10); ```
can be replaced by:
```c GArray *array = g_array_sized_new (FALSE, TRUE, sizeof (GValue), 10); g_array_set_clear_func (array, (GDestroyNotify) g_value_unset); ```
Example: Value arrays:
private inline Value create_string_value (string str) {
Value val = Value (typeof (string));
val.set_string (str);
return val;
}
public static int main (string[] args) {
ValueArray array = new ValueArray (10);
array.append (create_string_value ("BB"));
array.append (create_string_value ("DD"));
array.prepend (create_string_value ("AA"));
// Output: ``Len: 3``
print ("Len: %u\n", array.n_values);
array.insert (2, create_string_value ("CC"));
array.remove (3);
// Output:
// ``AA``
// ``BB``
// ``CC``
foreach (Value val in array.values) {
print ("%s\n", val.get_string ());
}
return 0;
}
valac --pkg gobject-2.0 GLib.ValueArray.vala