我正在尝试编写二叉树的打印函数,以下是我的代码:
我遇到了一个错误:值
impl TreeNode {
fn print(&self) {
self.print(0);
}
fn print(&self, level: u8) {
for _i in range(0,level) {
print!("\t");
}
match self.data {
Some(x) => println!("{}",x),
None => ()
};
match self.left {
Some(ref x) => x.print(level+1),
None => ()
};
match self.right {
Some(ref x) => x.print(level+1),
None => ()
};
}
}
我遇到了一个错误:值
print
的定义重复了。因此,我想知道是否有办法创建具有相同名称但不同参数的函数。另外,可选参数可以解决这个问题,但我认为目前还不可能实现(至少我在通过谷歌搜索时找不到)。那么,最好的方法是什么?重命名第二个打印函数虽然可行,但看起来很丑,并且如果我想(例如)从树的中间开始打印,则需要记住多个函数名称。