संरचनाएं स्विफ्ट में प्रोटोकॉल नामक इंटरफेस को लागू कर सकती हैं। आपके पास एक पैरामीटर, चर या क्षेत्र / सदस्य हो सकता है जो एक प्रोटोकॉल है, और, क्योंकि कई अलग-अलग संरचनाएं, वर्गों का उल्लेख नहीं करने के लिए, उसी प्रोटोकॉल को लागू कर सकते हैं, जब आप किसी प्रोटोकॉल पैरामीटर (या) को पास करते हैं (या असाइन करते हैं) चर या क्षेत्र), किस संरचना की संरचना हो सकती है, यह "खो" (पुनः: संकलन समय) है और प्रोटोकॉल गवाह तालिका खेल में आती है (पुनः: रनटाइम)।
आप स्विफ्ट मेमोरी लेआउट के बारे में अधिक जान सकते हैं ।
C # में भी ऐसा ही होता है, जिससे मैं अधिक परिचित हूं। एक इंटरफ़ेस चर या क्षेत्र / सदस्य के लिए एक संरचना को पारित या सौंपा गया है, और संरचना का बॉक्सिंग प्रतिनिधित्व वर्ग के प्रतिनिधित्व से मेल खाता है, जिसका अर्थ है कि बॉक्सिंग संरचनाओं के लिए एक व्यवहार्य है।
मैं उम्मीद करूंगा कि C # और Swift दोनों ही सीधे कॉल करें जब आइटम को कंपाइल समय पर एक स्ट्रक्चर के रूप में जाना जाता है, और कंपाइल टाइम पर वाइबेट डिस्पैच का उपयोग करने के लिए, आइटम को केवल एक इंटरफेस के रूप में जाना जाता है।