स्विफ्ट में एरे का पूरा मूल्य शब्दार्थ है, इसलिए किसी भी चीज की कोई आवश्यकता नहीं है।
var duplicateArray = originalArray
आपको जो चाहिए वह यह है।
यदि आपके सरणी की सामग्री एक संदर्भ प्रकार है, तो हाँ, यह केवल आपकी वस्तुओं के लिए संकेत कॉपी करेगा। सामग्री की गहरी प्रतिलिपि बनाने के लिए, आप इसके बजाय map
प्रत्येक उदाहरण की एक प्रति का उपयोग और प्रदर्शन करेंगे। फ़ाउंडेशन वर्गों के लिए जो NSCopying
प्रोटोकॉल के अनुरूप हैं , आप copy()
विधि का उपयोग कर सकते हैं :
let x = [NSMutableArray(), NSMutableArray(), NSMutableArray()]
let y = x
let z = x.map { $0.copy() }
x[0] === y[0] // true
x[0] === z[0] // false
ध्यान दें कि यहां ऐसे नुकसान हैं कि स्विफ्ट के मूल्य शब्दार्थ आपको उदाहरण के लिए रक्षा करने के लिए काम कर रहे हैं, क्योंकि NSArray
एक अपरिवर्तनीय सरणी का प्रतिनिधित्व करता है, इसकी copy
विधि सिर्फ एक संदर्भ देती है, इसलिए ऊपर दिए गए परीक्षण अप्रत्याशित परिणाम प्राप्त करेंगे।
var duplicateArray = originalArray