- 1
- 2
- 3
- 4
- 5
- 6
var topItem:Object;
var rowNum:int;
var rowCount:int;
...
else if (!topItem && !rowNum == rowCount)
...
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−186.1
var topItem:Object;
var rowNum:int;
var rowCount:int;
...
else if (!topItem && !rowNum == rowCount)
...
Чтобы не утомлять вас догадками, во что же это превратится и в каком порядке произойдут операции: это условие выполниться только когда:
topItem == null
rowNum != 0
rowCount == 0
Как следует из названий переменных, человек, написавший это ожидал, что количество строк может быть меньше, чем порядковый номер одной из строк...
Взято, опять же из Flex Framework mx.controls::Tree.
Скорее всего автор имел в виду следующее:
else if (!topItem && rowNum !== rowCount)
comnimh 27.02.2010 23:45 # 0
rowNum == 0
rowCount == 1
Не?
wvxvw 28.02.2010 00:10 # 0
кроме того, то, что оно включает в себя еще и другую ситуацию - как бы тоже не айс...
Ну и вообще, там по смыслу имелось в виду другое, т.е. именно != а не !х == у.
comnimh 28.02.2010 00:15 # 0
wvxvw 28.02.2010 00:17 # 0
Т.е. если уж писатель и рассчитывал на то, что условие выполнится только тогда, когда rowNum == 0, то последния строчка вызывает серьезные опасения за него и AS3 в целом :)
comnimh 28.02.2010 00:19 # 0
Баг, с кем не бывает. Исправят в какой-нибудь из будущих версий.
guest 02.03.2010 14:02 # 0
guest 02.03.2010 14:52 # 0
Они все равно оба интеджеры и у XOR приоритет выше чем у AND.
guest 09.04.2010 19:18 # 0