Работа с изменяемыми списками структур в Rust: методы и примеры кода

В Rust вы можете создать изменяемый список структур, используя тип Vec. Вот несколько методов, которые можно использовать с примерами кода:

  1. push: добавляет элемент в конец списка.

    struct MyStruct {
    // ... fields ...
    }
    fn main() {
    let mut my_list: Vec<MyStruct> = Vec::new();
    let new_struct = MyStruct { /* ... initialize fields ... */ };
    my_list.push(new_struct);
    }
  2. pop: удаляет и возвращает последний элемент из списка.

    fn main() {
    let mut my_list: Vec<MyStruct> = /* ... initialize list ... */;
    if let Some(last_struct) = my_list.pop() {
        // ... do something with last_struct ...
    }
    }
  3. get: извлекает элемент по индексу, возвращая Option<&T>.

    fn main() {
    let my_list: Vec<MyStruct> = /* ... initialize list ... */;
    if let Some(struct_ref) = my_list.get(0) {
        // ... do something with struct_ref ...
    }
    }
  4. get_mut: извлекает изменяемую ссылку на элемент по индексу, возвращая Option<&mut T>.

    fn main() {
    let mut my_list: Vec<MyStruct> = /* ... initialize list ... */;
    if let Some(struct_ref_mut) = my_list.get_mut(0) {
        // ... modify struct_ref_mut ...
    }
    }
  5. len: возвращает количество элементов в списке.

    fn main() {
    let my_list: Vec<MyStruct> = /* ... initialize list ... */;
    let list_length = my_list.len();
    println!("List length: {}", list_length);
    }
  6. is_empty: проверяет, пуст ли список.

    fn main() {
    let my_list: Vec<MyStruct> = /* ... initialize list ... */;
    if my_list.is_empty() {
        println!("The list is empty.");
    }
    }
  7. iter: возвращает итератор по элементам списка.

    fn main() {
    let my_list: Vec<MyStruct> = /* ... initialize list ... */;
    for item in my_list.iter() {
        // ... do something with item ...
    }
    }