Var1 = Var2 = 0

morpheus

скриптописец
07.08.2006
3 915
1
34
Украина, Киев
#1
Интересный для меня вапрос, кто моет обьснить почему в Лотусе не прокатывает конструкция типа
Код:
If a1 = a2 = a3 = 0 then
....
end if
знаю что в некоторых языках такая конструкция идет на ура

Я в программировании самоучка, может что и пропустил :unsure:
 
K

K-Fire

Гость
#5
<!--QuoteBegin-Morpheus+27:12:2006, 16:18 -->
<span class="vbquote">(Morpheus @ 27:12:2006, 16:18 )</span><!--QuoteEBegin-->акадимиеев не кончал, мне бы популярнее обьснить
[snapback]51938" rel="nofollow" target="_blank[/snapback]​
[/quote]

Сорри :) Суть в общем то проста: в стандарте LS-а такой конструкции не предусмотрено видимо, поэтому транслятор скрипта такую кострукцию и не понимает.
Хотя практически могут быть глюки в реализации транслятора, что он не сругнется когда встретит такую конструкцию, но правильно работать это не будет.
 

morpheus

скриптописец
07.08.2006
3 915
1
34
Украина, Киев
#8
Для: Medevic
:) :) :D

Для: K-Fire
а так это называеться транслятор, тю а я то думал ...ну хоть буду теперь знать правильные название... мдя нада идти учиться на програмиста.. С++ наверна


Фсем спасиба :)
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
2
36
Россия, Калуга
#9
<!--QuoteBegin-K-Fire+27:12:2006, 17:31 -->
<span class="vbquote">(K-Fire @ 27:12:2006, 17:31 )</span><!--QuoteEBegin-->Хотя практически могут быть глюки в реализации транслятора, что он не сругнется когда встретит такую конструкцию, но правильно работать это не будет.

[snapback]51940" rel="nofollow" target="_blank[/snapback]​
[/quote]
Не похоже. Проверил в VBA. Такая же фигня.
 
E

Elena Nefedova

Гость
#10
кто моет обьснить почему в Лотусе не прокатывает конструкция типа
Код:
If a1 = a2 = a3 = 0 then
....
end if
знаю что в некоторых языках такая конструкция идет на ура
В Perl, например, любой оператор возвращает значение. Оператор a3 = 0 возвращает значение 0, после чего а2 получает значение 0 (результат первого присвоения), а уже а1 получает значение 0, равное результату второго присвоения.
То есть, приведенное в вопросе выражение эквивалентно выражению Надеюсь, я не очень все запутала :) .
В Java эта конструкция также работает, хотя там и не каждый оператор возвращает значение


ЗЫ: если знак = считать оператором присвоения, а знак == оператором равенства, то сказанное выше верно. В LS же оба оператора обозначаются знаком = . Может, потому и не принимает "левых" выражений?