Обновить

И снова привет хабру! Сегодня подправил 4 главу, исправил опять таки то, что режет слух. 4 глава уже лежит на гитхабе путь тот же. И вот как пример правленого перевода подраздел 4.2 Трейты:

4.2 Трейты

Трейты — это эквивалент интерфейсов из других языков (с некоторыми отличиями).

Так как определение термина через его синоним не очень полезно, посмотрим, что это означает в коде:

pub trait Dog {
    fn bark(&self) -> String;
}


pub struct Labrador{}


impl Dog for Labrador {
    fn bark(&self) -> String {
         "wouf".to_string()
    }
}


pub struct Husky{}

impl Dog for Husky {
    fn bark(&self) -> String {
         "Wuuuuuu".to_string()
    }
}


fn main() {
    let labrador = Labrador{};
    println!("{}", labrador.bark());


    let husky = Husky{};
    println!("{}", husky.bark());
}


// Output:


// wouf
// Wuuuuuu

Определив интерфейс Dog, все типы, реализующие этот трейт в нашей программе, будут считаться «собакой».

Именно поэтому говорят, что трейты (и интерфейсы) позволяют программистам определять разделяемое поведение: поведение, которое разделяется несколькими типами.

Остальные наработки и все остальное также можно найти у меня на гитхабе по ссылке https://github.com/smokeplay250-png/black-hat-ru

Теги:
+3
Комментарии0

Методичка по построению VPN, осень 2026

Осенью 2026 года за шесть недель заблокировали четыре зарубежных VPN сервера, и каждый следующий прожил меньше предыдущего, три последних заблокировали за пять дней. Все настроено серьезно: VLESS поверх REALITY с self-steal SNI на собственном домене, XHTTP, разные провайдеры, страны и ASN. Их все-равно заблокировали. Явление массовое. В начале ноября адреса зарубежных серверов живут от нескольких часов до 1-3 суток при любом протоколе. Смена IP помогает ненадолго.

Методичка по построению VPN, осень 2026

Публикации