खोज…


घोषणाएँ सेट

सेट अनूठे मूल्यों के अनियोजित संग्रह हैं। अद्वितीय मान एक ही प्रकार के होने चाहिए।

var colors = Set<String>()

आप सरणी शाब्दिक सिंटैक्स का उपयोग करके मानों के साथ एक सेट घोषित कर सकते हैं।

var favoriteColors: Set<String> = ["Red", "Blue", "Green", "Blue"]
// {"Blue", "Green", "Red"}

एक सेट में मूल्यों को संशोधित करना

var favoriteColors: Set = ["Red", "Blue", "Green"]
//favoriteColors = {"Blue", "Green", "Red"}  

आप एक सेट में एक नया आइटम जोड़ने के लिए insert(_:) विधि का उपयोग कर सकते हैं।

favoriteColors.insert("Orange")
//favoriteColors = {"Red", "Green", "Orange", "Blue"}

आप किसी आइटम को सेट से हटाने के लिए remove(_:) विधि का उपयोग कर सकते हैं। यह वैकल्पिक युक्त मान लौटाता है जो निकाल दिया गया था या शून्य था यदि मूल्य सेट में नहीं था।

let removedColor = favoriteColors.remove("Red")
//favoriteColors = {"Green", "Orange", "Blue"}
// removedColor = Optional("Red")

let anotherRemovedColor = favoriteColors.remove("Black")
// anotherRemovedColor = nil

यह जाँचना कि क्या एक सेट में एक मूल्य है

var favoriteColors: Set = ["Red", "Blue", "Green"]
//favoriteColors = {"Blue", "Green", "Red"}

किसी सेट में मान होता है या नहीं यह जांचने के लिए आप contains(_:) विधि का उपयोग कर सकते हैं। यदि सेट में यह मान है तो यह सही होगा।

if favoriteColors.contains("Blue") {
    print("Who doesn't like blue!")
}
// Prints "Who doesn't like blue!"

सेट्स पर ऑपरेशन कर रहे हैं

दोनों सेटों से सामान्य मूल्य:

आप दोनों सेटों के लिए सभी मानों वाले एक नए सेट को बनाने के लिए intersect(_:) विधि का उपयोग कर सकते हैं।

let favoriteColors: Set = ["Red", "Blue", "Green"]
let newColors: Set = ["Purple", "Orange", "Green"]

let intersect = favoriteColors.intersect(newColors) // a AND b
// intersect = {"Green"}

प्रत्येक सेट से सभी मान:

आप एक नया सेट बनाने के लिए union(_:) विधि का उपयोग कर सकते हैं जिसमें प्रत्येक सेट से सभी अद्वितीय मान हैं।

let union = favoriteColors.union(newColors) // a OR b
// union = {"Red", "Purple", "Green", "Orange", "Blue"}

ध्यान दें कि "ग्रीन" का मान केवल नए सेट में एक बार कैसे दिखता है।

मान जो दोनों सेटों में मौजूद नहीं हैं:

आप exclusiveOr(_:) सेट का उपयोग कर सकते हैं एक नया सेट बनाने के लिए exclusiveOr(_:) विधि दोनों में से कोई भी विशिष्ट मान नहीं।

let exclusiveOr = favoriteColors.exclusiveOr(newColors) // a XOR b
// exclusiveOr = {"Red", "Purple", "Orange", "Blue"}

ध्यान दें कि "ग्रीन" मान नए सेट में कैसे प्रकट नहीं होता है, क्योंकि यह दोनों सेटों में था।

मान जो एक सेट में नहीं हैं:

आप एक नया सेट बनाने के लिए subtract(_:) विधि का उपयोग कर सकते हैं जिसमें एक विशिष्ट सेट नहीं है।

let subtract = favoriteColors.subtract(newColors) // a - (a AND b)
// subtract = {"Blue", "Red"}

ध्यान दें कि "ग्रीन" का मान नए सेट में कैसे दिखाई नहीं देता, क्योंकि यह दूसरे सेट में भी था।

एक सेट में मेरे अपने प्रकार के मूल्यों को जोड़ना

अपने स्वयं के प्रकार के एक Set को परिभाषित करने के लिए आपको अपने प्रकार को Hashable अनुरूप बनाने की आवश्यकता है

struct Starship: Hashable {
    let name: String
    var hashValue: Int { return name.hashValue }
}

func ==(left:Starship, right: Starship) -> Bool {
    return left.name == right.name
}

अब आप एक Set ऑफ Starship(s) बना सकते हैं

let ships : Set<Starship> = [Starship(name:"Enterprise D"), Starship(name:"Voyager"), Starship(name:"Defiant") ]

CountedSet

3.0

स्विफ्ट 3 CountedSet क्लास का परिचय देता है (यह NSCountedSet Objective-C वर्ग का स्विफ्ट संस्करण है)।

काउंटेडसेट, जैसा कि नाम से पता चलता है, मान कितनी बार मौजूद है, इस पर नज़र रखता है।

let countedSet = CountedSet()
countedSet.add(1)
countedSet.add(1)
countedSet.add(1)
countedSet.add(2)

countedSet.count(for: 1) // 3
countedSet.count(for: 2) // 1


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow