स्विफ्ट 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
सूत्रों का कहना है: