![]() |
|
||||||||||
|
|||||
|
Подскажите, плиз, как правильно записывать несколько кратких логических условий в return?
Например так записывается одно краткое if условие: А как мне записать что-то более сложное? Допустим несколько условий через оператор || или && ? Как можно вернуть значение на основании 2х или более if? Как записать else? |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
А вложенные....
var a:Boolean = true; var b:Boolean = false; var c:Boolean = true; var v1:int = 1; var v2:int = 2; var v3:int = 3; var v4:int = 4; /// такая запись... trace (a == b ? a == c ? v1 : v2 : b == c ? v3 : v4); var v:int; /// ... аналогична такой if (a == b) { if (a == c) { v = v1; } else { v = v2; } } else if (b == c) { v = v3; } else { v = v4; } trace (v); |
|
|||||
if (condition1 == "есть что выпить" && condition2 == "хочется выпить") { drink(); } else if (condition3 == "есть бабло") { buy(); drink(); } else { sport(); } (condition1 == "есть что выпить" && condition2 == "хочется выпить") ? drink() : condition3 == "есть бабло" ? (buy(), drink()) : sport(); ![]() |
|
|||||
|
Я предложу исходить из здравого смысла.
Если для человека очевидно, что вернёт метод (например, метод getMin(a1,a2,a3)), то можно использовать двойную тернарную запись. Если не очевидно, то нужно упрощать выражение настолько, насколько её читабельность станет приемлемой.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Цитата:
К тому же иногда сталкиваюсь с подобными записями в чужом коде.Цитата:
и не стразу в неё въезжаю)) Хотя возможно это просто с непривычки. |
|
|||||
|
Цитата:
Цитата:
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку. Последний раз редактировалось GBee; 12.02.2011 в 22:28. |
|
|||||
|
За вложенный тернарный оператор хочется бить по рукам (особенно, если без скобочек), или хотя-бы в глаза автору посмотреть
Вот какой из 2-х вариантов читается быстрее? Если наиболее частым вариантом является a != b, а a == b - это особый случай, то можно написать так: Еще, ИМХО, логику на if-ах править легче - легче выносить одинаковые значения в переменные Последний раз редактировалось expl; 12.02.2011 в 22:39. |
|
|||||
|
Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
|
expl, ну типа первый вариант в одну строчку...
![]()
__________________
Загружаем картинки, минуя ошибки безопасности |
![]() |
![]() |
Часовой пояс GMT +4, время: 15:19. |
|
|
« Предыдущая тема | Следующая тема » |
|
|