Нужен аналог растовского:
#[derive(Debug)]
struct Data {
a: i32,
b: i32,
c: i32,
flag: bool,
}
fn main() {
let d = Data {
a: 1,
b: 1,
c: 1,
flag: false,
};
println!("{:?}", d);
}
То есть:
- Значение присваивают по имени.
- Структура иммутабельная, ака все поля const.
- Пропустить инициализацию поля нельзя - ошибка компиляции.
Примеры:
struct Data
{
const int a;
const int b;
const int c;
const bool flag;
};
Data d1 {.a = 1}; // компилятор вообще молчит
Data d2 {1}; // warning: missing field 'b' initializer, только одно проверят; легко ошибиться полем
qDebug() << d1.b;
qDebug() << d2.b;
Есть решения?