@zundan この場合単にDrop::dropのかわりにdropを呼ぶのではなく、もう少し複雑なことが起きています。
たとえば、 let x = (vec![1, 2, 3], 4); drop(x) というコードを考えます。ここでxはタプル型ですが、タプル型はDropを実装していません。ではxをdropしてと何も起きないかというとそんなことはなく、 x.0 の Drop::drop を呼ぶ処理が走ることになります。
このように、dropは単にDrop::dropを呼ぶのではなく、Drop::dropを再帰的に呼ぶ責務を担っています。
Embed Notice
HTML Code
Corresponding Notice
- Embed this notice
Masaki Hara (qnighy@qnmd.info)'s status on Sunday, 19-May-2024 11:56:16 JSTMasaki Hara