Блог О пользователеiphonesdk

Регистрация

 
     
ЯнварьФевральМартАпрельМайИюньИюльАвгустСентябрьОктябрьНоябрьДекабрь
            

 

Плоха ли привычка выходить с помощью return из метода/функции? И про ==


Вспомнил недавно, что читал у одного известного автора (простите, не помню как его зовут), что выходить из функции/метода с помощью return - не самая полезная привычка.

Он объяснял это тем, что однажды код метода/функции будет модифицироваться, и тот кто будет спустя месяцы или годы добавлять что-то новое может не придать должного внимания преждевременному возврату из функции/метода при определённом условии.

Автор советовал вместо того чтобы просто выходить при определённых условиях с помощью return не делать этого, а везде явно написать либо if-else, либо switch-case конструкции, потому что это будет в будущем явно показывать: при таких-то условиях выполняется вот этот блок, а при таких-то условиях будет выполняться другой блок. Нигде не будет ни одного return, а только в конце метода/функции мы уже явно выдаём результат или просто выходим восвояси.

Интересно, что думают другие на этот счёт?

И ещё вспомнил один позабытый совет, который сейчас стал использовать. Автор одной книги делать не так, как принято у многих:

if (variable == CONSTANTA)
{
    // bla bla bla
}

а делать так:

if (CONSTANTA == variable)
{
    // bla bla bla
}

Потому что если по запарке напишешь не ==, а = (9 999 раз напишешь правильно, а в 10 000 раз всё-таки ошибёшься, потому что ты обычный человек, а ошибёшься в важном месте, и люди понесут серьёзные убытки из-за банальной человеческой невнимательности), то константа тебе не позволит это сделать физически.

 

Чем мне понравился язык программирования Swift


Попробовал писать на Swift. В целом язык больше нравится, чем не нравится.


Немного ломает то, что строчки не нужно заканчивать точкой с запятой. Немного ломает то, что после if необязательно писать скобки. Впрочем я их пишу, чтобы не отвыкать от своих привычек к C++ и Objective-C.


Очень радует, что язык Swift заставляет более внимательно относиться к типам данных. То есть программист вынужден обращать внимание на совместимость типов данных что по моему представлению хотя бы немного увеличивает надёжность написанного кода.


Ещё одна интересная особенность: nil не указывает на несуществующую область памяти (как в C++ или Objective-C), он говорит о том, что переменная равна ничему. Удивило, что даже переменной типа Int? можно присвоить nil, и что самое приятное лично для меня - эта переменная не будет равна целочисленному нулю! Это очень классно, я считаю, что это уменьшает вероятность логических ошибок в коде.