Есть ли способ набрать параметр ограничивать параметр более чем одним ограничением? В частности, объект может быть протокола Decodable или Array с общим Decodable.Множественные ограничения типов
Так как это:
func myFunc(obj:Decodable, Array<Decodable>)
Я попытался подходя к нему, как это, используя общий с несколькими ограничениями, но это требует как быть protocals, что массив не является. Кроме того, это, вероятно, ап и ограничение, а не OR, как указывая на MartinR:
func myFunc<T where T:Decodable, T:Array<Decodable>>(obj:T)
Это терпит неудачу, потому что массив не является протоколом. Есть ли способ ограничить параметр одним из двух типов, где один не является протоколом?
Я пытаюсь избежать проверки, которая вызывает ошибку во время выполнения, что я могу сделать, но для меня это кажется плохим.
Я пробовал это раньше и никогда не нашел способ сделать это. Не сказать, что это невозможно, но я не смог найти способ. –
Вы не можете ограничить параметр 'T1' * или *' T2', ни для типов, ни для протоколов. –
@MartinR Вы можете использовать протоколы, описанные выше, где, корректируя для ясности – steventnorris