ვირტუალურ მაგიდასა და მოწმეების მაგიდას შორის რა განსხვავებაა?
sobes.tech AI
პასუხი AI-სგან
වර්චුවල් වගුව (vtable) යනු වස්තු-කේන්ද්රිත වැඩසටහන් භාෂා, ඇතුළුව Swift සඳහා පන්තීන් සඳහා පොලිමෝර්ෆිසම ක්රියාවට නැංවීම සඳහා භාවිතා වේ. එය පන්තියේ ක්රියාවන් (මිතියෝ) සඳහා සංකේතකයන් අඩංගු කරයි, ඒවා උපපන්තීන්වලින් නැවත ලිවිය හැකිය. මූලික පන්තියකට සංකේතකයක් මඟින් ඇමතුමක් කළ විට, පද්ධතිය වස්තුවේ vtable එක බලයි, එම ක්රියාවට ඇමතුම යොමු කළ යුතුදැයි තීරණය කරයි (මූලික පන්තිය හෝ උපපන්තිය තුළ නැවත ලිවිය හැකිය).
සැකසීමේ වගුව (witness table) Swift හි ප්රොටෝකෝල් සඳහා භාවිතා වේ. එය ප්රොටෝකෝලයේ අවශ්යතා (ගුණාංග, ක්රම, සම්බන්ධිත වර්ග) සඳහා විශේෂිත වර්ගයක් සඳහා ක්රියාත්මක කිරීම් සංකේතකයන් අඩංගු කරයි. ක්රමයක් ප්රොටෝකෝල වර්ගයේ පරාමිතියක් ලබා ගන්නා විට, පද්ධතිය ලබා දී ඇති වස්තුව සමඟ සම්බන්ධිත සැකසීමේ වගුව භාවිතා කරමින්, එම වර්ගයට අදාළ ප්රොටෝකෝල අවශ්යතා සඳහා විශේෂිත ක්රියාත්මක කිරීම් ලබා ගනී. Witness table එක Swift ට ප්රොටෝකෝල් සඳහා ගතිකව යොමු කිරීම (dispatching) සිදු කිරීමට ඉඩ සලසයි, එමඟින් පන්තීන් සඳහා vtable සමඟ සම්බන්ධ අමතර වියදම් නොමැතිව, ප්රොටෝකෝල්වල ලවචිකත්වය සහය දක්වයි.
ප්රධාන වෙනස්කම්:
| ලක්ෂණය | වර්චුවල් වගුව (vtable) | සැකසීමේ වගුව |
|---|---|---|
| අදාළ වේ | පන්තීන් | ප්රොටෝකෝල් |
| අඩංගු වේ | පන්තියන්ගේ ක්රමවලට සංකේතකයන් | එම වර්ගයට අදාළ ප්රොටෝකෝල අවශ්යතා ක්රියාත්මක කිරීම් සඳහා සංකේතකයන් |
| ක්රියාවලිය | උරුමය | ප්රොටෝකෝල සමඟ අනුකූලතාව |
| පොලිමෝර්ෆිසම | උප වර්ගවල පොලිමෝර්ෆිසම | ප්රොටෝකෝල් පොලිමෝර්ෆිසම |