неявное объявление в libreoffice basic

Я пробовал пример кода здесь (a = b + c). Удивительно, но реальность не соответствует ожидаемому поведению.

В Win7 и LO 4.4.2.2 я вижу, что a и b объявлены как целые числа, значения которых равны 0, а c пусто.

В Ubuntu 16.04 и LO 5.1.6.2 они все пусты.

Есть идеи, как объяснить первый случай?


person Samuel    schedule 18.05.2017    source источник
comment
В LO 4.4.3.2 на Linux Mint все они пусты, поэтому я не могу воспроизвести ваши результаты.   -  person Jim K    schedule 18.05.2017


Ответы (1)


Из https://help.libreoffice.org/Basic/Using_Variables:

Как только переменная была объявлена, ей автоматически устанавливается значение «Null». Числовым переменным автоматически присваивается значение «0», как только они объявлены.

Как видно из ссылки в вопросе, неявная инициализация - это плохая практика программирования на Basic. Столь странные результаты не должны вызывать удивления при использовании старых версий.

В Perl $a = $b + $c; устанавливает значение $ a равным нулю, потому что это математический результат, а $ b и $ c инициализируются пустой строкой. Perl имеет долгую историю поддержки необъявленных переменных, хотя в настоящее время рекомендуется use strict.

person Jim K    schedule 18.05.2017