Hãy nói rằng tôi có các giao thức này:
protocol SomeProtocol {
}
protocol SomeOtherProtocol {
}
Bây giờ, nếu tôi muốn một hàm có kiểu chung, nhưng kiểu đó phải tuân theo SomeProtocol
tôi có thể làm:
func someFunc<T: SomeProtocol>(arg: T) {
// do stuff
}
Nhưng có cách nào để thêm một ràng buộc kiểu cho nhiều giao thức không?
func bothFunc<T: SomeProtocol | SomeOtherProtocol>(arg: T) {
}
Những thứ tương tự sử dụng dấu phẩy, nhưng trong trường hợp này, nó sẽ bắt đầu khai báo một loại khác. Đây là những gì tôi đã thử.
<T: SomeProtocol | SomeOtherProtocol>
<T: SomeProtocol , SomeOtherProtocol>
<T: SomeProtocol : SomeOtherProtocol>