स्विफ्ट 5 के साथ, आप एक बूलियन संपत्ति के साथ टाइप के Optional
लिए एक एक्सटेंशन लागू कर सकते String
हैं जो रिटर्न करता है यदि वैकल्पिक स्ट्रिंग का कोई मूल्य नहीं है या खाली है:
extension Optional where Wrapped == String {
var isNilOrEmpty: Bool {
return self?.isEmpty ?? true
}
}
हालांकि, प्रोटोकॉल के अनुरूप संपत्ति को String
लागू isEmpty
करता है Collection
। इसलिए हम पिछले कोड के सामान्य बाधा (जगह ले सकता है Wrapped == String
एक व्यापक एक (के साथ) Wrapped: Collection
) ताकि Array
, Dictionary
और Set
भी हमारे नए लाभ isNilOrEmpty
संपत्ति:
extension Optional where Wrapped: Collection {
var isNilOrEmpty: Bool {
return self?.isEmpty ?? true
}
}
उपयोग के साथ String
:
let optionalString: String? = nil
print(optionalString.isNilOrEmpty) // prints: true
let optionalString: String? = ""
print(optionalString.isNilOrEmpty) // prints: true
let optionalString: String? = "Hello"
print(optionalString.isNilOrEmpty) // prints: false
उपयोग के साथ Array
:
let optionalArray: Array<Int>? = nil
print(optionalArray.isNilOrEmpty) // prints: true
let optionalArray: Array<Int>? = []
print(optionalArray.isNilOrEmpty) // prints: true
let optionalArray: Array<Int>? = [10, 22, 3]
print(optionalArray.isNilOrEmpty) // prints: false
सूत्रों का कहना है: