Size: a a a

2018 February 05

🦉⁣

🦉 ⁣ in Rust Beginners
Так
источник

🦉⁣

🦉 ⁣ in Rust Beginners
Трейт что-то вроде чистого абстрактного класса
источник

🦉⁣

🦉 ⁣ in Rust Beginners
Для которого нужно реализовать все методы
источник

🦉⁣

🦉 ⁣ in Rust Beginners
И можно принимать объекты в функциях
источник

P+

PAM3ES ++ in Rust Beginners
и все?
источник

🦉⁣

🦉 ⁣ in Rust Beginners
Не совсем
источник

A

Alik in Rust Beginners
PAM3ES ++
и все?
но круче
источник

🦉⁣

🦉 ⁣ in Rust Beginners
На трейтах сделана перегрузка операторов
источник

🦉⁣

🦉 ⁣ in Rust Beginners
Трейт это роль
источник

🦉⁣

🦉 ⁣ in Rust Beginners
Реализация трейта и структура могут находиться в разных местах
источник

🦉⁣

🦉 ⁣ in Rust Beginners
Если импортнуть структуру только, то в проект не будет подключен код трейтов
источник

🦉⁣

🦉 ⁣ in Rust Beginners
То есть методов не будет
источник

🦉⁣

🦉 ⁣ in Rust Beginners
При подключении трейта в область видимости, объекты этих структур получают методы трейта
источник

🦉⁣

🦉 ⁣ in Rust Beginners
Также с помощью трейтов реализовано конвертирование типов
источник

🦉⁣

🦉 ⁣ in Rust Beginners
Into и From
источник

🦉⁣

🦉 ⁣ in Rust Beginners
Оператор взятия индекса реализуется через std::ops::Index
источник

P+

PAM3ES ++ in Rust Beginners
ок, у меня вопрос к примеру одному из книги
источник

🦉⁣

🦉 ⁣ in Rust Beginners
Давай
источник

P+

PAM3ES ++ in Rust Beginners
pub struct NewsArticle {
   pub headline: String,
   pub location: String,
   pub author: String,
   pub content: String,
}

impl Summarizable for NewsArticle {
   fn summary(&self) -> String {
       format!("{}, by {} ({})", self.headline, self.author, self.location)
   }
}

pub struct Tweet {
   pub username: String,
   pub content: String,
   pub reply: bool,
   pub retweet: bool,
}

impl Summarizable for Tweet {
   fn summary(&self) -> String {
       format!("{}: {}", self.username, self.content)
   }
}
источник

P+

PAM3ES ++ in Rust Beginners
зачем тут трейты?
источник