Dengan Swift 5, Anda dapat menerapkan Optional
ekstensi untuk String
tipe dengan properti boolean yang kembali jika string opsional tidak memiliki nilai atau kosong:
extension Optional where Wrapped == String {
var isNilOrEmpty: Bool {
return self?.isEmpty ?? true
}
}
Namun, String
mengimplementasikan isEmpty
properti dengan mematuhi protokol Collection
. Karenanya kita dapat mengganti batasan generik kode sebelumnya ( Wrapped == String
) dengan yang lebih luas ( Wrapped: Collection
) sehingga Array
, Dictionary
dan Set
juga menguntungkan isNilOrEmpty
properti baru kami :
extension Optional where Wrapped: Collection {
var isNilOrEmpty: Bool {
return self?.isEmpty ?? true
}
}
Penggunaan dengan String
s:
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
Penggunaan dengan Array
s:
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
Sumber: