И 1, и 2 легче читать, чем 3 и 4, также потому, что они используются в коде Apple; многие разработчики привыкли к 1 и 2.
Число 4 и 3 совпадают, как если бы !self
оценивается как истина, тогда это означает, что self
равно nil
, поэтому утверждение return self
равнозначно return nil
. Некоторые люди скажут, что у вас не должно быть нескольких точек выхода (возвратов) в методе, но в действительности наличие нескольких операторов возврата может сократить количество операторов if (что уменьшает читабельность)
Номер 2 встречается часто, однако в последних версиях xcode вы получите предупреждение компилятора, если и оператор if
содержит один =
(столько раз, сколько это опечатка, если вы намеревались использовать ==
для сравнения BOOL
значений). Чтобы заглушить это предупреждение, вы должны заключить оператор в квадратные скобки, поэтому вместо if (foo = bar)
вы получите if ((foo = bar))
Но Apple, должно быть, поняла, что Number 2 используется очень часто, и они добавили исключение из правила, поэтому его использование теперь не вызовет предупреждения компилятора.
Поскольку Номер 2 является исключением из правила, вам не следует его использовать. Таким образом, это делает номер 1 предпочтительным методом.