【发布时间】:2019-07-24 08:39:02
【问题描述】:
我有一个带有两个参数的函数(假设是两个字符串):
fn foo(x: String, y: String) -> String {
x + y
}
我总是在编译时知道x,但直到运行时我才知道y。
如何在不为每个x 复制粘贴函数的情况下以最大效率编写此代码?
【问题讨论】:
-
除了将
x和y的类型更改为&str并避免String的无用构造之外,我不确定这里在编译时有很多需要优化的地方. -
所以你想要
x的每个版本的你的版本的功能?我怀疑这就是我所说的部分应用。 -
您确定这是您代码中的性能瓶颈吗?如果是的话,我会非常惊讶。无论如何,如果确实如此,我建议将
foo()标记为#[inline(always)]并使用正常的闭包。即使没有该属性,编译器也可能会内联该函数,因此无需担心,但如果该属性让您放心,那么请继续添加它。 :) -
我怎样才能写出最高效率——为什么你认为你写的不是最高效率?
-
嗯,我不知道,这就是我问的原因。
标签: rust compile-time