- дженерик. Например:
struct Point<T> {
value: T
}
у нее есть конструктор
impl<T> Point<T> {
fn new(value: T) -> Self{
Point{value}
}
}
Есть вторая структура:
struct Calculator<T>{
points: Vec<Point<T>>
}
Для второй структуры имплементю функцию по добавлению точки в points:
impl<T> Calculator<T> {
fn add_point(&mut self) {
self.points.push(Point::new("123"));
}
}
Ругается, что "123" не типа <T>, который указан в impl<T> Calculator<T>.
В то же время в другом файле вызов Point::new("Text") работает нормально.
Почему в первом случае "123" не воспринимается, ведь он подходит под дженерик?
123 подходит только для Calculator<&str>
Обсуждают сегодня