Size: a a a

2020 March 23

Т8

Т-34 85 in rust_offtopic
а это кто
trait A {
   fn a();
}


trait B: A {
   fn a();
}


impl B for MyType {
   fn a() {}
   fn b() {}
}
MyType может скаститься к A?
источник

В

Вафель in rust_offtopic
а это кто
trait A {
   fn a();
}


trait B: A {
   fn a();
}


impl B for MyType {
   fn a() {}
   fn b() {}
}
Там должно быть 2 отдельных импла
источник

а

а это кто in rust_offtopic
Вафель
Там должно быть 2 отдельных импла
ой да
источник

В

Вафель in rust_offtopic
Т-34 85
MyType может скаститься к A?
Ага, только надо учитывать что A это не тип
источник

S

Soul in rust_offtopic
Т-34 85
и для этого полиморфизм работает?
конечно. Если функция принимает что-то типа T, для которого есть gen1, то сойдет T, для которого есть gen3, если есть impl gen2 for gen3 и impl gen1 for gen2
источник

а

а это кто in rust_offtopic
Т-34 85
MyType может скаститься к A?
может скастится к dyn A, да.
источник

Т8

Т-34 85 in rust_offtopic
круто. Но мне не получится не переопределять геттеры и сеттеры, да?
источник

A

Agrailag in rust_offtopic
Oleg Andreev
такая фича только в биткоине
стоимость которого считается в ужасных долларах
источник

Т8

Т-34 85 in rust_offtopic
Т-34 85
круто. Но мне не получится не переопределять геттеры и сеттеры, да?
если мне придётся агрегировать вместо наследования структуры
источник

S

Soul in rust_offtopic
Ну тут надо какую-то конкретную ситуацию описывать
источник

Т8

Т-34 85 in rust_offtopic
Вафель
Там должно быть 2 отдельных импла
стоп. А если в одном трейте переопределяется метод другого?
источник

S

Soul in rust_offtopic
Т-34 85
стоп. А если в одном трейте переопределяется метод другого?
если функция принимает T: gen1, то она знает только про то что в gen1 и использует методы из него
источник

S

Soul in rust_offtopic
в других случаях требуется вручную указывать
источник

S

Soul in rust_offtopic
тоже какой-то колдунский прием для этого был... Турборыбой чтоли назывался
источник

В

Вафель in rust_offtopic
Турборыба 😎
источник

S

Soul in rust_offtopic
None::<u8>.unwrap()
источник

а

а это кто in rust_offtopic
источник

В

Вафель in rust_offtopic
Soul
тоже какой-то колдунский прием для этого был... Турборыбой чтоли назывался
Но мне кажется ты что-то путаешь, турборыба нужна чтобы явно задаю дженерик параметр, а не что-то с баундами сделать...
источник

S

Soul in rust_offtopic
Вафель
Но мне кажется ты что-то путаешь, турборыба нужна чтобы явно задаю дженерик параметр, а не что-то с баундами сделать...
если методы в трейтах пересекаются и невозможно определить автоматом, чей метод ты вызываешь
источник

Т8

Т-34 85 in rust_offtopic
Soul
Ну тут надо какую-то конкретную ситуацию описывать
пишем гуй. Например, у нас модель SqlTableModel, которая наследуется от TableModel, который наследуется от ItemModel и т.д. В плюсах у тебя тупо все геттеры, сеттеры и прямые обращения к полям не ломаются при наследовании. А как в расте?
источник