#swift
#быстрый
Вопрос:
Я упростил свой код. Итак, теперь у меня есть общая функция, подобная этой:
func genFunclt;T: Codablegt;(test: T.Type) { print(test) }
Давайте определим фиктивную структуру:
struct Test: Codable { let name: String }
Теперь я могу вызвать функцию с помощью этого:
genFunc(test: Test.self)
Но то, что я хочу сделать, это сохранить тип и вызвать функцию с сохраненным типом. Этот код не работает:
var type: Codable.Type type = Test.self genFunc(test: type)
Я получаю ошибку: Generic parameter 'T' could not be inferred
Комментарии:
1. Вы на самом деле не упростите свой код, если вам действительно нужны перегрузки. Для универсальной функции требуется конкретный тип или метатип.
Codable.self
дело не в этом.2. @Jessy: под упрощением я подразумеваю, что я удалил параметры и свойства и переименовал все. Что вы имеете в виду под перегрузками?