LINUX.ORG.RU

История изменений

Исправление AntonyRF, (текущая версия) :

Но он невозможен, потому что в расте нельзя иметь переменную с пустым именем. Придётся использовать хотя бы одну букву, например a (сокращение от alias).

Вами приведённый код не корректный, его не пропустит компилятор

{ 
   let a = &mut foo.bar.baz; // <= Тут проблема  
   a.waldo=1;
   a.fred=3.0;
   a.do_something();
}

Корректный такой:

{
    let a = &mut Foo {
                     waldo: 1,
                     fred: 3.0,
                 };
    a.do_something();
}

И кмк, он проще примера с with ;)

Исходная версия AntonyRF, :

Но он невозможен, потому что в расте нельзя иметь переменную с пустым именем. Придётся использовать хотя бы одну букву, например a (сокращение от alias).

Вами приведённый код не корректный, его не пропустит компилятор

{ 
   let a = &mut foo.bar.baz; // <= Тут проблема  
   a.waldo=1;
   a.fred=3.0;
   a.do_something();
}

Корректный такой:

{
    let a = &mut Foo {
                     waldo: 1,
                     fred: 3.0,
                 };
    a.do_something();
}

И кмк, он проще Вашего с with ;)