แก้ไข:ฉันกำลังใช้คำถามใหม่อีกครั้ง เห็นได้ชัดว่าฉันทำให้เกิดความสับสนเพราะฉันไม่ได้ตระหนักว่าคำว่าdestructorถูกใช้ใน OOP สำหรับสิ่งที่แตกต่างกันมาก - เป็นฟังก์ชันที่เรียกใช้เมื่อวัตถุถูกทำลาย ในการเขียนโปรแกรมการทำงานเรา (พยายาม) หลีกเลี่ยงสถานะที่เปลี่ยนแปลงไม่ได้ดังนั้นจึงไม่เทียบเท่ากับมัน (ฉันเพิ่มแท็กที่เหมาะสมให้กับคำถาม)
แต่ผมเคยเห็นว่าการบันทึกข้อมูลสำหรับ unwrapping ค่า (โดยเฉพาะอย่างยิ่งสำหรับชนิดข้อมูล valued เดียวเช่นnewtype
s) บางครั้งเรียกว่าdestructorหรือบางทีอาจจะDeconstructor ตัวอย่างเช่นมี (ใน Haskell):
newtype Wrap = Wrap { unwrap :: Int }
นี่Wrap
คือตัวสร้างและunwrap
อะไร
คำถามคือ:
- เราจะเรียก
unwrap
โปรแกรมการทำงานได้อย่างไร Deconstructor? Destructor? หรือคำอื่น ๆ ? - และเพื่อชี้แจงว่าคำศัพท์นี้ / อื่น ๆ สามารถใช้งานได้กับภาษาอื่น ๆหรือใช้ใน Haskell หรือไม่?
- บางทีอาจมีคำศัพท์สำหรับเรื่องนี้โดยทั่วไปในภาษาที่ไม่สามารถใช้งานได้หรือไม่?
ฉันเห็นทั้งสองคำแล้วเช่น:
... บ่อยครั้งที่หนึ่งมีตัวสร้างสมาร์ทและdestructors ที่ฉลาดเหล่านี้เพื่อความสะดวกในการทำงานกับพวกเขา ...
ที่Haskell wikiหรือ
... ชุดรูปแบบทั่วไปที่นี่เพื่อฟิวส์ตัวสร้าง - คู่deconstructorเช่น ...
ที่Haskell wikibook (นี่อาจหมายถึงความหมายทั่วไปมากกว่าเล็กน้อย) หรือ
newtype DList a = DL { unDL :: [a] -> [a] }
ฟังก์ชั่น unDL เป็นตัวแยกส่วนของเราซึ่งจะลบตัวสร้าง DL ...
ในโลกแห่งความจริง Haskell