中級 › E0072: recursive type has infinite size の原因と直し方 › パターン3
E0072: recursive type has infinite size の原因と直し方
構造体が自分自身の型を直接フィールドに持つと、サイズが無限になってしまいコンパイルエラーになります。
1 struct TreeNode { 2 value: i32, 3 left: _____________________, ^ 4 } 5 fn main() { 6 let n = TreeNode { value: 1, left: None }; 7 println!("{}", n.value); 8 }
error[E0072]: recursive type `TreeNode` has infinite size
空欄を埋めて実行を通す
木構造のようなデータ構造では、子ノードへの参照は必ずBoxやRcなどの間接参照にする必要があります。
次の問題