Dave Herman's recent talk rust 说他们从C++borrow 了这个属性.我找不到关于这个话题的任何东西.有人能解释一下单态化是什么意思吗?
Dave Herman's recent talk rust 说他们从C++borrow 了这个属性.我找不到关于这个话题的任何东西.有人能解释一下单态化是什么意思吗?
单形化意味着生成泛型函数的专用版本.如果我写了一个函数来提取任意一对中的第一个元素:
fn first<A, B>(pair: (A, B)) -> A {
let (a, b) = pair;
return a;
}
然后我调用这个函数两次:
first((1, 2));
first(("a", "b"));
编译器将生成两个版本的first()
,一个专用于整数对,另一个专用于字符串对.
这个名字源于编程语言术语"多态性"——意思是一个可以处理多种类型数据的函数.单态化是从多态代码到单态代码的转换.