Comments 10
А вы не интересовались реальной ситуацией с контейнерами для дженериков? Если я не ошибаюсь, то находя в коде вызов дженерик метода, компилятор просто создает копию метода для конкретного типа. Поэтому количество вызовов дженерик методов может влиять на размер бинарника. Что касается контейнера и выделение памяти, это автор с экземплярами протокольного типа в рантайме путает.
+1
Вроде не ошибаетесь. Ellie Shin из Uber неплохо раскрыла эту проблему в своем докладе Putting Your App on a Diet
0
Ну вообще если мы возьмем код стека на темплейтах из статьи, сгенерим две переменных с интовым стеком и одну со стринговым, а потом выдернуть у них типы через type(of:), то типы у интовых совпадут, а у стрингового будет другой. Будь там реально контейнер совпали бы все три ИМХО.
К тому же я почти уверен что это все обертка над плюсовыми темплейтами, а в C++ все темплейты разрешаются на этапе компиляции
К тому же я почти уверен что это все обертка над плюсовыми темплейтами, а в C++ все темплейты разрешаются на этапе компиляции
-1
Все хорошо, вот ток смущает «iOS разработчик. Продвинутый курс».
Не понятно почему простейшая работа с generic-ами стала продвинутым курсов — в swiftbook это есть, и расписано подробней.
При этом в статье нет рассказа о всяких изощрённых использований generic, о том как они интересно с автовывоводом типов сочетаются, ну и о том как внутри работает.
Не понятно почему простейшая работа с generic-ами стала продвинутым курсов — в swiftbook это есть, и расписано подробней.
При этом в статье нет рассказа о всяких изощрённых использований generic, о том как они интересно с автовывоводом типов сочетаются, ну и о том как внутри работает.
+1
Я не являясь разработчиком iOS и разработчиком вообще, хотя и имею кое какие знания в этом успешно прошел их тестирование на оценку Б, типа ваших знаний достаточно чтобы записаться на курс. Все, что нужно знать о продвинутости.
0
Перевод данной статьи не имеет отношения к программе курса. Это просто интересная информация и не более.
0
Замечание. "TypeParameter" — это PascalCase, а camelCase — с горбом посередине.
Правда, с прыгающим капсом есть путаница и разногласия (и русская вика пишет иное, чем английская). Поэтому настаивать не буду, но, как говорится, JFYI.
0
Вы ещё вспомните, что по правильному дженерики — обобщения (по аналогии с обобщённым программированием).
0
Sign up to leave a comment.
Сила дженериков в Swift. Часть 1