面试题答案
一键面试use std::fmt::Debug;
fn complex_logic<T: Debug + 'static, U: Debug + 'static>(param1: T, param2: U) {
// 假设这里是复杂的逻辑判断
if param1.to_string().len() > 5 && param2.to_string().len() < 10 {
println!("满足特定条件: {:?}, {:?}", param1, param2);
} else {
println!("不满足特定条件: {:?}, {:?}", param1, param2);
}
}
你可以这样调用这个函数:
fn main() {
complex_logic("hello world", 12345);
}
解释
- 泛型定义:
fn complex_logic<T: Debug + 'static, U: Debug + 'static>(param1: T, param2: U)
定义了一个泛型函数complex_logic
,它接受两个不同类型的参数param1
和param2
。T
和U
都要求实现Debug
特征以便于打印调试信息,并且添加了'static
生命周期约束,这确保了泛型类型的生命周期足够长。 - 逻辑判断:在函数体中,通过
if
语句结合&&
逻辑运算符进行复杂逻辑判断。这里只是简单示例,实际应用中可根据具体需求调整逻辑。 - 调用函数:在
main
函数中,传入不同类型的参数调用complex_logic
函数进行测试。