|
ToDo:
|
本当はgenericsにしたかったのだがcompile error が取れない。
#[derive(Debug)]
struct LinkedList {
val: &'static str,
next: Option
}
pub fn chain(){
let mut root = LinkedList{val: "Taro", next: None};
root.next = Some(Box::new(LinkedList{val: "Jiro", next: None}));
println!("{:?}",root);
}
BoxにしないとLinkedListをメンバーにもたせると
--> src/linkedlist.rs:3:5
|
3 | struct LinkedList {
| ^^^^^^^^^^^^^^^^^ recursive type has infinite size
|
= help: insert indirection (e.g., a `Box`, `Rc`, or `&`) at some point to make `linkedlist::foo::LinkedList` representable
てな感じで無限ループでsizeが取れないのでcompile error になるそうです。