public static <T> boolean isNullOrEmpty(Collection<T> c) { return (null == c) || (c.size() == 0); }
[ Wiki Условия Йоды ]
if ("text".equals(str)) {...}
if($a = 'b'){
/*Этот код будет выполнятся всегда,
так как была допущена опечатка
*/
}
if('b' = $a){
/*Этот код упадет с ошибкой парсера.
Нельзя записать в строку переменную :)
*/
}
if('b' == $a){
/* А этот будет работать, как ожидается. */
}
Условия Йоды (Yoda conditions) – “безопасный” стиль записи выражений
сравнения, заключающийся в написании константы слева от оператора
сравнения (то есть 5 == a вместо привычного а == 5).По-началу такая запись очень не привычна, но такой стиль призван предотвратить ошибку – использование оператора присваивания “=” вместо сравнения “==“. Ошибочное использование присваивания превращает нотацию “Йоды” в попытку изменить константу, вызывая ошибку на этапе компиляции, что исключает возможность появления в готовой программе ошибок данного вида, а также облегчает их поиск и исправление в новом коде.
И так, в классической нотации проверка переменной на равенство некоторой константе записывается следующим образом:
1
2
3
|
if ( $variable == 52 ) {
/* действия, выполняемые если переменная равна 52 */
}
|
1
2
3
|
if ( $variable = 52 ) { // ОШИБКА: ПРИСВАИВАНИЕ переменной значения 52
/* действия, выполняемые ВСЕГДА */
}
|
При использовании нотации Йоды переменная и константа меняются местами, так что константа оказывается слева:
1
2
3
|
if ( 52 == $variable ) {
/* действия, выполняемые если переменная равна 52 */
}
|
1
2
3
|
if ( 52 = $variable ) { // ОШИБКА при компиляции
/* ... */
}
|
1
2
3
|
if ( someFunction() = $variable ) { // ОШИБКА при компиляции
/* ... */
}
|
Комментариев нет:
Отправить комментарий