将通用整数减半

时间:2017-08-29 23:29:30

标签: rust

我希望能够将通用整数类型减半并使我的函数返回该整数类型。

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
}

第一个函数将我的整数减半,但可能返回不同的类型。第二个函数不编译。如何将第二个函数约束为与输入类型具有相同的输出类型?

我应该以其他方式减半吗?除以一()+一()?

0 个答案:

没有答案