Drop 特徵

如果值實作了 Drop,即可在超出範圍時指定要執行哪個程式碼:

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Speaker Notes

討論要點:

  • 為什麼 Drop::drop 不使用 self
    • 簡答:如果這樣的話,系統會在 區塊結尾呼叫 std::mem::drop,進而觸發另一個對 Drop::drop 的呼叫並造成堆疊 溢位!
  • 請嘗試將 drop(a) 替換為 a.drop()