我有一个针对整数执行此操作的函数:
fn some_to_value(src: Option<&int>) -> Option<int> {
match src {
Some(x) => Some(*x),
None => None
}
}
我希望让它通用化(并仍然在调用者的级别使用 "int")。如果 T 的实例被复制,那对我来说也没问题。所以我试着这样做:
fn some_to_value<T>(src: Option<&T>) -> Option<T> {
match src {
Some(x) => Some(*x),
None => None
}
}
I get:
error: cannot move out of dereference of `&`-pointer
Some(x) => Some(*x),
^~
我不理解为什么它失败了(我是初学者)。
一些背景:我复制了一个选项,因为我意识到,在“HashMap”上执行“查找”后,只要“查找”的返回值(包含对映射项的引用的选项)存在,映射将是不可变的。