Swift 5 ile, isteğe bağlı bir dizenin değeri yoksa veya boşsa dönen bir boole özelliği ile tür Optional
için bir uzantı uygulayabilirsiniz String
:
extension Optional where Wrapped == String {
var isNilOrEmpty: Bool {
return self?.isEmpty ?? true
}
}
Ancak, protokole uyarak özelliği String
uygular . Bu nedenle önceki kodun jenerik kısıtlamasını (yerine daha geniş bir birinden (birlikte) ), böylece , ve aynı zamanda yeni yararlanacak özelliği:isEmpty
Collection
Wrapped == String
Wrapped: Collection
Array
Dictionary
Set
isNilOrEmpty
extension Optional where Wrapped: Collection {
var isNilOrEmpty: Bool {
return self?.isEmpty ?? true
}
}
S ile kullanım 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
S ile kullanım 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
Kaynaklar: