2016-04-16 2 views
0

Это может показаться тривиальным вопросом о производительности, но в Swift, если вы объявите класс как final, необходимо также объявить все его методы как final или это просто избыточная избыточность? Я просто хочу убедиться, что мои конкретные классы работают как final, чтобы обеспечить максимальную безопасность и производительность в моем приложении. Спасибо за любые советы, мудрость или знания заранее!Быстрые конечные классы и функции

+0

Dang. Уже задано –

+1

Когда вы включаете «Оптимизация всего модуля» в настройках сборки компилятора, это имеет аналогичный эффект. Но это делается компилятором для вас, и вам не нужно отмечать все кланы как окончательные. Недостаток: он работает только для приложений, а не для библиотек, и это значительно увеличивает время сборки. Но это можно сделать, например, только для версий RELEASE. – Darko

+0

@ Дарко, что такое «ма»? –

ответ

2

Swift, если вы объявляете класс как окончательное это необходимо также объявить все методы, как окончательные или это просто лишняя избыточность

Да, это излишний. Если класс является окончательным, все его члены являются окончательными по смыслу. Вы получаете эффективность, чтобы избежать динамической отправки, и что вы хотите делать.

+0

Так что в принципе не нужно делать эти методы окончательными? –

+1

Правильно, потому что каким образом вы могли бы переопределить один из этих методов? Вы не можете создать подкласс, поэтому нет места для переопределения. – matt

Смежные вопросы