Обертки типов в Rust:
В Rust оболочки типов используются для предоставления дополнительных функций или поведения определенному типу. Их можно реализовать с помощью шаблона newtype или путем создания структуры, обертывающей исходный тип. Вот пример простой оболочки типа с использованием шаблона newtype:
struct Wrapper<T>(T);
impl<T> Wrapper<T> {
fn new(value: T) -> Self {
Wrapper(value)
}
fn get(&self) -> &T {
&self.0
}
}
fn main() {
let wrapper = Wrapper::new(42);
println!("Value: {}", wrapper.get());
}
В этом примере структура Wrapperоборачивает значение любого типа T. Функция newсоздает новый экземпляр оболочки, а метод getпозволяет получить доступ к обернутому значению.
Метод Clone в Rust:
Трайат Cloneв Rust предоставляет способ создания копии объекта. Он обычно используется, когда вы хотите создать новый объект с теми же значениями, что и существующий объект. Вот пример использования метода clone:
#[derive(Clone)]
struct MyStruct {
value: i32,
}
fn main() {
let original = MyStruct { value: 42 };
let cloned = original.clone();
println!("Original: {}", original.value);
println!("Cloned: {}", cloned.value);
}
В этом примере тип MyStructреализует признак Clone, который позволяет создать клон объекта с помощью метода clone. Объект исходныйклонируется в объект клонированный, и оба объекта можно использовать независимо.