Исходный код
if (result == true)
return true;
else
return result;
Что не так в этом коде
Если у тебя есть переменная булева типа, то нет необходимости её сравнивать с истиной или ложью, можно напрямую передавать её в оператор if
. Вместо if (result == true)
пишем просто if (result)
.
Если у тебя переменная какого-то другого типа, то следует пользоваться правилами неявного преобразования значений произвольного типа в булевы. Например, часто 0
и пустая строка эквивалентны значению «ложь».
Второй момент — что вовзращаем оператором return
. Исходный код построен так, что при истинном значении переменной возвращается «истина», а при ложном — «ложь». То же самое можно выразить существенно короче:
return result;
На случай, если в переменной result
присутствует значение не булева типа, а из функции необходимо возвратить именно булево значение, то следует пользоваться «двойным отрицанием»:
return !!result;
Благодаря такому финту выполнится явное преобразование значение произвольного типа к значению булева типа.