Structs สามารถใช้อินเตอร์เฟสที่เรียกว่าโปรโตคอลใน Swift คุณสามารถมีพารามิเตอร์ตัวแปรหรือเขตข้อมูล / สมาชิกที่เป็นโปรโตคอลและเนื่องจากโครงสร้างที่แตกต่างกันหลายชั้นไม่รวมถึงคลาสสามารถใช้โปรโตคอลเดียวกันนั้นเมื่อคุณผ่าน (หรือกำหนด) โครงสร้างให้กับพารามิเตอร์โปรโตคอล (หรือ ตัวแปรหรือเขตข้อมูล) ข้อมูลเฉพาะของโครงสร้างที่อาจเป็นได้คือ "หลงทาง" (เวลา: เวลารวบรวม) และตารางพยานโครงการโปรโตคอลเข้ามาเล่น (อีกครั้ง: รันไทม์)
คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับรูปแบบของหน่วยความจำสวิฟท์
เกิดขึ้นคล้ายกันใน C # ซึ่งฉันคุ้นเคยมากขึ้น struct ผ่านหรือกำหนดให้กับตัวแปรอินเทอร์เฟซหรือเขตข้อมูล / สมาชิกจะถูกบรรจุกล่องและการแสดงโครงสร้างของกล่องตรงกับการเป็นตัวแทนระดับซึ่งหมายความว่ามี vtable สำหรับ structed ชนิดบรรจุกล่อง
ฉันคาดหวังว่าทั้ง C # และ Swift จะโทรโดยตรงเมื่อรายการนั้นรู้จักกันในเวลาคอมไพล์เป็น struct และใช้ vtable dispatch เมื่อถึงเวลาคอมไพล์รายการนั้นเป็นที่รู้จักกันในนามของอินเตอร์เฟสเท่านั้น