Katakanlah saya memiliki protokol ini:
protocol SomeProtocol {
}
protocol SomeOtherProtocol {
}
Sekarang, jika saya ingin fungsi yang menggunakan tipe generik, tetapi tipe itu harus sesuai dengan yang SomeProtocolbisa saya lakukan:
func someFunc<T: SomeProtocol>(arg: T) {
// do stuff
}
Tetapi apakah ada cara untuk menambahkan batasan tipe untuk banyak protokol?
func bothFunc<T: SomeProtocol | SomeOtherProtocol>(arg: T) {
}
Hal serupa menggunakan koma, tetapi dalam kasus ini, ia akan memulai deklarasi dari tipe yang berbeda. Inilah yang saya coba.
<T: SomeProtocol | SomeOtherProtocol>
<T: SomeProtocol , SomeOtherProtocol>
<T: SomeProtocol : SomeOtherProtocol>