【发布时间】:2026-02-06 19:05:02
【问题描述】:
在我学习 rust 的过程中,我试图找到在 rust 中打印单链结构列表的最佳方法。这是我的代码:
struct SList {
n: int,
next: Option<Box<SList>>
}
fn print_slist(mut l: &SList) {
print!("{}", l.n);
loop {
match l.next {
Some(ref next) => { print!(" -> {}", next.n); l = &(**next); },
None => { break; }
}
}
println!("");
}
fn main() {
let sl1 = SList { n: 11, next: Some(box SList { n: 22, next: Some(box SList { n: 33, next: None })})};
print_slist(&sl1);
}
我相信这可以通过更好的方式完成,我想了解它们。除此之外,我还担心&(**next) 部分。是否会创建下一个 SList 的不必要副本?
【问题讨论】:
标签: linked-list rust singly-linked-list