Я добрался до этого странного ограничения компилятора в Swift 3.1, проверенном на игровой площадке. Любое решение?
Похоже на ошибку компилятора, предложения? Спасибо :)
Я добрался до этого странного ограничения компилятора в Swift 3.1, проверенном на игровой площадке. Любое решение?
Похоже на ошибку компилятора, предложения? Спасибо :)
Protocol1
как тип, соответствующийProtocol1
. Это не ошибка, это так задумано. - person Hamish   schedule 13.04.2017static
наProtocol1
— если бы у меня былоfunc foo<T : Protocol1>(_: T.Type) {}
, я мог бы получить доступ к требованиям статического протокола наT
. Вы не можете получить доступ к статическим требованиям к типу протокола, только к конкретным типам, поэтому позволять протоколам соответствовать самим себе неразумно. Однако я согласен с тем, что обходной путь (стирающие ластики) довольно банален — надеюсь, в будущей версии языка Swift будет поддерживать некоторую языковую функцию, чтобы облегчить это бремя. - person Hamish   schedule 13.04.2017T
, а неparam
(который в вашем примере является экзистенциальным метатипом, поэтому работает нормально). Честно говоря, это был не лучший пример — я проиллюстрировал (надеюсь) лучший пример в мом ответе на связанные вопросы и ответы здесь< /а> :) - person Hamish   schedule 14.04.2017