В Rust вы можете создать изменяемый список структур, используя тип Vec
. Вот несколько методов, которые можно использовать с примерами кода:
-
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); }
-
pop
: удаляет и возвращает последний элемент из списка.fn main() { let mut my_list: Vec<MyStruct> = /* ... initialize list ... */; if let Some(last_struct) = my_list.pop() { // ... do something with last_struct ... } }
-
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 ... } }
-
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 ... } }
-
len
: возвращает количество элементов в списке.fn main() { let my_list: Vec<MyStruct> = /* ... initialize list ... */; let list_length = my_list.len(); println!("List length: {}", list_length); }
-
is_empty
: проверяет, пуст ли список.fn main() { let my_list: Vec<MyStruct> = /* ... initialize list ... */; if my_list.is_empty() { println!("The list is empty."); } }
-
iter
: возвращает итератор по элементам списка.fn main() { let my_list: Vec<MyStruct> = /* ... initialize list ... */; for item in my_list.iter() { // ... do something with item ... } }