Инициализируйте два члена структуры с функцией, которая возвращает кортеж в Rust - PullRequest
0 голосов
/ 10 марта 2019

Итак, у меня есть функция, которая возвращает кортеж из 2 значений, и я хочу присвоить эти значения двум разным членам структуры. Есть ли способ сделать это без необходимости дважды вызывать функцию и извлекать каждое значение отдельно?

Я думаю что-то вроде:

let mut my_struct : MyStruct = MyStruct {
    (member1, member2): function_that_returns_tuple()
}

В настоящее время я вызываю функцию для двух временных переменных и затем перемещаю их в члены структуры, но мне интересно, есть ли способ сделать это непосредственно при инициализации.

1 Ответ

1 голос
/ 10 марта 2019

Я считаю, что ваш существующий подход является правильным.Если вы называете переменные в качестве членов структуры, вы можете избежать явного синтаксиса member: value:

let (member1, member2) = function_that_returns_tuple();
MyStruct { member1, member2, }
...