Rust具有“内联”属性,可用于以下三种口味之一:
#[inline]
#[inline(always)]
#[inline(never)]
什么时候应该使用它们?
在Rust参考中,我们看到一个内联属性部分,
编译器会根据内部启发法自动内联函数。不正确的内联函数实际上会使程序变慢,因此应谨慎使用。
在Rust内部知识论坛中,huon在指定inline方面也很保守。
但是我们在Rust源中看到了很多用法,包括标准库。许多内联属性被添加到单行函数中,对于编译器来说,根据参考文献,通过启发式方法可以很容易地发现并优化它们。实际上不需要那些吗?
inline(never)
函数用于紧急情况内在函数,以确保优化程序不会内联仅在紧急情况下调用的函数。