Когда все-таки ставить self?

Когда все-таки ставить self?

iOSDeviant


Как часто у вас бывали такие малюсенькие фризы, когда мир на секунду замер и вы принимаете решение "ставить self или нет"?

Ну, вот например:

28-ая строка - ставить туда self.interview?.start() или оставить без self?

И, надо отметить, таких ситуаций бывает много. Потому, пойдем по порядку.

Когда надо обязательно ставить self?

Проверь себя. Попробуй вспомнить 2 ситуации, когда без указания self мы получим ошибки?

  1. В инициализаторе, когда переменные называются так же, как и параметры init'a:

Иначе, компилятор запутается, что и с какой переменной мы пытаемся сделать (потому что их 2 и они называются одинаково):

2. Когда внутри замыкания обращаемся к сущностям текущего класса (не знаю как проще сказать, поэтому, держи пример):

Если убрать из замыкания self, то код покроется прыщами, как я в 7-ом классе:

Про замыкания и как там работать с self поговорим в другой раз, слишком это большая тема для данной статьи


Ок. А ставить ли self в остальных случаях?

Плюсы и минусы простановки self везде, при каждом удобном случае. Коротко и ясно, как лето в Сибири.

+ Читаемость кода.
Если проект большой и в нем есть много глобальных переменных, то представь ситуацию:
Есть некий класс на 200 строк кода. Программист Аристарх решил ни где не ставить self. Где-то идут вызовы к глобальным переменным, где-то к локальным переменным класса. Как думаешь что проще - разобраться с этим кодом или испортить карму громким матом?

Краткий пример для примера выше

В этот пункт сразу включаем:
- возможность делать более качественное код-ревью;
- малое время на вникание в чужой код;
- чистота кода и понятность.

— Скорость разработки.
Как пишут в книжках по учету финансов - вы каждый день тратите 100 рублей на бутылку пива, а за миллиард лет вы бы накопили 100 триллионов биткоинов на покупку нашей галактики.
Т.е. конечно не сильный минус, но все же, код пишется чуть быстрее и время немного экономится.

— Привычка
Если ты не так давно в программировании и Swift твой первый язык, возможно, в твою привычку вошли переменные без добавления self.
А значит, если ты будешь каждый раз себя заставлять добавлять это слово - дольше будешь писать код и быстрее устанешь (порой привычки побороть труднее, чем Хабиба).

Итого:

  • Если кодишь для себя (делаешь по-быстрому маленький домашний проект) - можешь не ставить везде self.
  • Если работаешь на большом проекте или тебе нравится красивый, чистый код - ставь self везде, где нужно.

Всем счастья, здоровья, мужчинам носков, дамам цветов!


Report Page