Trước đây trong Swift 2.2 Tôi có thể làm:Mở rộng các mảng đã nhập (của các kiểu nguyên thủy như Bool) trong Swift 3?
extension _ArrayType where Generator.Element == Bool{
var allTrue : Bool{
return !self.contains(false)
}
}
kéo dài [Bool]
với .allTrue
. Ví dụ.
[true, true, false].allTrue == false
Nhưng trong Swift 3.0 Tôi nhận được lỗi này:
undeclared type
_ArrayType
Vì vậy, tôi đã cố gắng chuyển đổi nó để Array
và sử dụng các từ khóa mới Iterator
extension Array where Iterator.Element == Bool
var allTrue : Bool{
return !self.contains(false)
}
}
Nhưng tôi có một lỗi khác phàn nàn rằng tôi đang buộc phần tử không phải là chung chung
Same-type requirement makes generic parameter 'Element' non-generic
Tôi cũng đã thử các giải pháp trong 2 years old post này nhưng không có kết quả.
Vậy làm cách nào để mở rộng mảng các kiểu nguyên thủy như Bool trong Swift 3?
liên quan: http://stackoverflow.com/questions/31806324/extend-array-types-using-where-clause-in-swift –