Структуры
struct StructName {
public int a;
}определяет структурный тип, т. е. составной значимый тип. Структура в Vala может в некоторых случаях иметь методы и закрытые члены, значит надо явно использовать модификатор доступа public.
struct Color {
public double red;
public double green;
public double blue;
}Так вы можете инициализировать структуру:
// без вывода типов
Color c1 = Color();
Color c2 = { 0.5, 0.5, 1.0 };
Color c3 = Color() {
red = 0.5,
green = 0.5,
blue = 1.0
};
// с выводом типов
var c4 = Color();
var c5 = Color() {
red = 0.5,
green = 0.5,
blue = 1.0
};Структуры - значимые типы (выделяются в стеке/встраиваются и копируются при присваивании).
-----------------------------
SimpleType
Если перед объявлением структуры написать шаблон [SimpleType]то данная структура будет передаваться по значению.

Массив структур
Если массив константен:
Иначе:
В качестве альтернативы, если структуру YourStruct создали вы (она не является внешней), вы можете предоставить конструктор, чтобы упростить приведенное выше выражение:
Тогда вы сможете инициализировать массив структур так:
Last updated
Was this helpful?