Недавно я просматривал некоторый код, который я поддерживаю, и я заметил практику, отличную от того, к чему я привык. В результате, мне интересно, какой метод использовать при выполнении раннего возврата функции.C/C++ (Другие языки тоже?) Условное раннее возвращение Хорошая практика кода
Вот несколько примеров:
Версия 1:
int MyFunction(int* ptr)
{
if(!ptr) { // oh no, NULL pointer!
return -1; // what was the caller doing? :(
}
// other code goes here to do work on the pointer
// ...
return 0; // we did it!
}
Версия 2:
int MyFunction(int* ptr)
{
if(!ptr) { // oh no, NULL pointer!
return -1; // what was the caller doing? :(
} else { // explicitly show that this only gets call when if statement fails
// other code goes here to do work on the pointer
// ...
return 0; // hooray!
}
}
В результате, я задаюсь вопросом, который считается "лучшей практики" для тех, из вас, кто пережил (и выжил) много обзоров кода. Я знаю, что каждый из них делает то же самое, но добавляет ли «еще» с точки зрения удобочитаемости и ясности? Спасибо за помощь.
Правильно, я понимаю, но что-то получило читаемость мудрым явным другим? –
Я не думаю, что это добавляет читаемость, но это мнение. – ChiefTwoPencils
Думаю, мне пришлось бы изменить это, чтобы сказать, что это не добавит читаемости программисту (все еще мнение). – ChiefTwoPencils