Несколько процедур, таких как деструктуризация массива в JavaScript или манипулирование коллекциями в Python, побудили меня оценить свойство или метод объекта, чтобы проверить, существует ли он вообще, прежде чем продолжить, что часто приводит к следующему шаблону:
var value = collection.length
if value != null {
if value == targetValue {
/* do something */
}
}
В попытке сделать «более чистый» код я хочу сделать что-то вроде:
if value != null && value == targetValue {
/* do something */
}
или с троичным оператором:
var value = collection.length != null ? collection.length : 0
Однако я никогда не уверен, чтоКомпилятор прекратит оценку, как только разрешит первое сравнение с null
, или продолжит работу и выдаст ошибку. Конечно, я могу выполнить небольшие модульные тесты, но я бы предпочел, чтобы я знал правильный термин для поиска в документации любого языка. Что это за термин или, возможно, он одинаков во всех языках?