সুইফট 5 এর সাহায্যে, আপনি বুলিয়ান সম্পত্তি সহ টাইপের Optionalজন্য একটি এক্সটেনশন প্রয়োগ করতে পারেন Stringযা returnsচ্ছিক স্ট্রিংয়ের কোনও মূল্য না থাকে বা খালি থাকলে ফিরে আসে:
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
সূত্র: