中級 › E0072: recursive type has infinite size の原因と直し方 › パターン2
E0072: recursive type has infinite size の原因と直し方
構造体が自分自身の型を直接フィールドに持つと、サイズが無限になってしまいコンパイルエラーになります。
1 struct ListItem { 2 data: i32, 3 child: _____________________, ^ 4 } 5 fn main() { 6 let n = ListItem { data: 1, child: None }; 7 println!("{}", n.data); 8 }
error[E0072]: recursive type `ListItem` has infinite size
空欄を埋めて実行を通す
再帰的な構造体の典型的な解決策は、フィールドをBoxで包んでポインタとして持つことです。
次の問題