Rust与C ++不同,没有函数重载。考虑一个链接列表模型,在C ++中,它看起来像:
template <typename T>
class Node {
private:
T value;
std::unique_ptr<Node<T>> next;
public:
Node<T>& getNext();
const Node<T>& getNext() const;
};
当您处理常量列表时,您无法修改它,因为您只能访问const Node<T>&
,同时您可以修改非常量列表。
Rust中这种行为的等价物是什么?考虑使用多种方法的更复杂的示例。 &mut self
和&self
只有部分内容必须重载。
pub struct Node<T> {
value: T,
next: Option<Box<Node<T>>>,
}
impl<T> Node<T> {
pub fn getNext(&self) -> Option<&Self> {}
pub fn getNext(&mut self) -> Option<&mut Self> {}
}