MST

星途 面试题库

面试题:Rust中闭包作为参数时如何进行简单类型约束

请编写一个Rust函数,该函数接受一个闭包作为参数,闭包接受两个i32类型参数并返回i32类型结果。在函数内部调用这个闭包并返回结果。然后说明闭包参数的类型约束是如何体现的。
11.5万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
fn call_closure<F>(closure: F) -> i32
where
    F: Fn(i32, i32) -> i32,
{
    closure(1, 2)
}

闭包参数的类型约束通过 where F: Fn(i32, i32) -> i32 体现,这里 Fn(i32, i32) -> i32 表明传入的闭包 closure 必须接受两个 i32 类型参数,并返回一个 i32 类型的结果。Fn 是Rust中闭包的一种trait,用于标记可以像普通函数一样调用的闭包。这种约束确保了在函数 call_closure 内部调用闭包时,参数和返回值类型是符合预期的。