Y1> {
x: X1,
y: Y1,
}
impl<X1, Y1> Point<X1, Y1> {
fn mixup<X2, Y2>(self, other: Point<X2, Y2>) -> Point<X1, Y2> {
Point {
x: self.x,
y: other.y,
}
}
}
fn main() {
let p1 = Point { x: 5, y: 10.4 };
let p2 = Point { x: "Hello", y: 'c' };
let p3 = p1.mixup(p2);
println!("p3.x = {}, p3.y = {}", p3.x, p3.y);
}
короче вопрос в работе метода структуры,он принимает некий экземпляр структуры с обощенным типом х1 и у1 , но сама функция уже принимает х2 у2 обощенные типы вот тут ваще не понял как они будут взаиимодействовать и в скобках аргумент первый селф, он возьмет экземпляр класса х1 у1 или х2 у2 ?вторрой момент аргумент other , получается принимает тот же эзкемпляр , но уже с другими обощенными типами ?и сразу вопрос зачем так делать если у нас и так есть х1 у1
Тут нету трейтов
Обсуждают сегодня