面试题答案
一键面试fn choose<T>(first: Option<T>, second: Option<T>) -> Option<T> {
first.unwrap_or(second)
}
泛型约束及原因
- 泛型参数
T
无特定约束:在这个函数中,T
不需要特定的约束,因为unwrap_or
方法对于任何类型T
都适用。unwrap_or
方法的功能是如果Option
是Some
,则返回其中的值,否则返回传入的默认值(这里就是第二个Option
)。所以不需要对T
进行额外的限定,如Clone
、Copy
等,因为函数逻辑并未涉及这些特性的操作。