我希望能够将通用整数类型减半并使我的函数返回该整数类型。
use std::ops::*;
pub fn half_nonnegative<I: Shr<i32>>(n: I) -> <I as std::ops::Shr<i32>>::Output {
n >> 1
}
pub fn half_nonnegative_input_type_same_as_output<I: Shr<i32>>(n: I) -> I {
n >> 1
}
第一个函数将我的整数减半,但可能返回不同的类型。第二个函数不编译。如何将第二个函数约束为与输入类型具有相同的输出类型?
我应该以其他方式减半吗?除以一()+一()?