Expand description
一个函数或函数指针。
函数是在 Rust 中执行代码的主要方式。通常称为函数的函数块可以在各种不同的位置定义,并分配有许多不同的属性和修饰符。
仅位于未附加任何模块的模块中的独立函数是常见的,但是大多数函数最终将最终位于 impl
块中,或者位于另一种类型本身上,或者作为该类型的 trait 隐式实现。
fn standalone_function() {
// code
}
pub fn public_thing(argument: bool) -> String {
// code
}
struct Thing {
foo: i32,
}
impl Thing {
pub fn new() -> Self {
Self {
foo: 42,
}
}
}
Run除了以 fn name(arg: type, ..) -> return_type
形式显示固定类型外,函数还可以声明类型参数列表以及它们所属的 trait bounds。
fn generic_function<T: Clone>(x: T) -> (T, T, T) {
(x.clone(), x.clone(), x.clone())
}
fn generic_where<T>(x: T) -> T
where T: std::ops::Add<Output = T> + Copy
{
x + x + x
}
Run在尖括号中声明 trait bounds 在功能上与使用 where
子句相同。
由程序员决定在每种情况下哪种效果更好,但是当事情长于一行时,where
往往会更好。
除了通过 pub
公开之外,fn
还可以添加 extern
以用于 FFI。