можете ли вы использовать логический предикат самостоятельно в качестве параметра для оператора if
Строго говоря, ответом на this является 'нет', поскольку предикат представляет собой функцию (в математическом смысле). может *1011* использовать для условного выражения в if
любое логическое выражение , включая (как здесь) результат вызова предиката в значение.
Чтобы расширить, «предикат» здесь равен «ПРИВЕТ». Это функция (в математическом смысле), которая работает со значениями типа string
и возвращает логические значения. Как только вы получили логическое значение (применяя эту функцию к определенной строке, str
), вам не нужно явно сравнивать его с true
: вы можете просто использовать его.
Как вы увидите из ответов других, код, в котором выражения булевого типа явно сравниваются с булевыми литералами, часто вызывает у читателя боль в стиле кода :) (Моя «любимая» мозоль <boolean expression> ? true : false
).