|
![]() |
#1 |
Боец
|
Условия
X++: t= d == (5 || 10); // false X++: t= (d == 5 || d == 10); // true Во избежание получения результата, отличного от ожидаемого, в подобных случаях можно использовать более читабельные конструкции, например: X++: if (d == 5 || d == 10) t = true; Последний раз редактировалось DSPIC; 15.04.2009 в 12:27. |
|
![]() |
#2 |
Участник
|
Цитата:
Сообщение от DSPIC
![]() Условия
X++: t= d == (5 || 10); // false X++: t= (d == 5 || d == 10); // true Во избежание получения результата, отличного от ожидаемого, в подобных случаях можно использовать более читабельные конструкции, например: X++: if (d == 5 || d == 10) t = true; X++: t= d == (5 || 10); И назидательный тон ваш совсем не уместен, эти примеры я сам написал и поэтому хорошо знаю и понимаю что в них написано.
__________________
Dynamics AX 4.0.2501.122 SP2, kernel 4.0.2163.0, MS SQL 2005 Последний раз редактировалось cerbo; 15.04.2009 в 12:46. Причина: очепятка |
|
![]() |
#3 |
Участник
|
Цитата:
Это какая-то PHP-красота Лучше как в питогне X++: t = d in [5, 10] X++: boolean in(AnyType _value, container _container) { return conFind(_container, _value) ? true : false; } t = in(d, [5, 10]); А неявное преобразование сделано для проверки непутоты X++: if (table1.Qty1 || table1.Qty2) { .... } else { warning("No qty!!!") } |
|
![]() |
#4 |
Участник
|
А зачем тогда нужно из boolean в int?
__________________
Dynamics AX 4.0.2501.122 SP2, kernel 4.0.2163.0, MS SQL 2005 |
|
![]() |
#5 |
Участник
|
|
|
![]() |
#6 |
Участник
|
Цитата:
Соответсвенно в аксапте на самом деле true преобразовывается в 1, а false в 0. Поэтому собственно код автора выдавал false, ибо 10 не равно 1. Лично я всё равно избегаю таких неявных преобразований ибо от лукавого ![]() |
|
![]() |
#7 |
Axapta
|
|
|
![]() |
#8 |
Участник
|
Да какая красота и элегантность?
Ну и какому числу должно быть равно булевское значение после преобразования в int? 1? 5? -1? "Элегантно" заглядывать в документацию каждый раз как встретишь (если это там вообще определено)? Надеятся, что в следующей версии компилятора эту "красоту" не испорятят? Для справки: 1. В С и С++ нет булевского типа. Есть понятие "0 "и "не 0", со всеми вытекающими. 2. В Java такие трюки вообще запрещены. И правильно. В одном вы правы - надо быть осторожней и НЕ использовать такие финты. |
|
![]() |
#9 |
Участник
|
Цитата:
![]()
__________________
Dynamics AX 4.0.2501.122 SP2, kernel 4.0.2163.0, MS SQL 2005 |
|
![]() |
#10 |
Боец
|
|
|
Теги |
неявное преобразование |
|
![]() |
||||
Тема | Ответов | |||
Будьте осторожны с RecordInsertList | 6 | |||
баг в 2.5. Будьте осторожнее с символом "_" подчеркивание | 5 | |||
Заказы-склад комплектация | 2 | |||
И еще раз о слоях | 2 |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|