Первые две попытки дают ошибки, но третья работает.
extern crate nalgebra as na;
fn main() {
let a: na::Vector2<f32> = na::Vector2::new(0.0f32, 0.0f32);
let b: na::Vector2<u32> = na::Vector2::new(1u32, 1u32);
let c = a.component_div(&b); // mismatched types
let c = a.component_div(&na::convert(b)); // error[E0284]: type annotations required: cannot resolve `<na::constraint::ShapeConstraint as na::constraint::SameNumberOfRows<na::U2, _>>::Representative == _`
let c = a.component_div(&na::convert::<na::Vector2<u32>, na::Vector2<f32>>(b)); // compiles
}
Есть ли лучший способ выполнить третью версию let c = _
без изменения типов a
и b
а также избегая дополнительных промежуточных переменных?
Мне просто плохо, когда пишу третью строку, как у меня сейчас.