面试题答案
一键面试// 定义特质HasValue
trait HasValue {
type ValueType;
fn get_value(&self) -> &Self::ValueType;
}
// 泛型函数,比较两个实现了HasValue特质对象的get_value返回值大小
fn compare_values<T: HasValue>(a: &T, b: &T) -> &T::ValueType
where
T::ValueType: PartialOrd,
{
let value_a = a.get_value();
let value_b = b.get_value();
if value_a >= value_b {
value_a
} else {
value_b
}
}