Почему Gambas выдает ошибку после того, как я затемню переменную после вызова функции? - PullRequest
0 голосов
/ 03 марта 2019

Я играю с гамбами.

Этот код дает мне сообщение об ошибке "неожиданное затемнение в FMain.class: 6"

Public Sub Form_Open()

  Print "this won't work"

  Dim nickname As String = "gambas"

  Print "Your new name is " & nickname

End

Этот код не работает и работает нормально:

Public Sub Form_Open()

  Dim nickname As String = "gambas"

  Print "Your new name is " & nickname  

End

Есть ли у gambas требования, когда переменные объявляются как паскаль?Я не могу найти упоминания об этом в документации.Спасибо.

Ответы [ 2 ]

0 голосов
/ 02 июля 2019

Это больше не требуется, поскольку Gambas 3.12.

Но я предлагаю продолжить объявление переменных в верхней функции.Это делает код гораздо более читабельным два года спустя.

0 голосов
/ 03 марта 2019

Gambas требует, чтобы все операторы DIM были помещены перед любым исполняемым кодом внутри функции или подпрограммы (выделено мной):

http://gambaswiki.org/wiki/lang/dim

Все DIM объявлениядолжен быть в FUNCTION или SUB перед первой исполняемой командой .

Поэтому измените свой код на это:

Public Sub Form_Open()

  Dim nickname As String = "gambas"

  Print "this will work"

  Print "Your new name is " & nickname

End

Gambas 'Требование для предварительного объявления всех локальных переменных очень старое.Иногда это облегчает создание самодокументируемого кода и стимулирует создание коротких функций, но если функция имеет много промежуточных кратковременных локальных переменных, которые не могут быть немедленно инициализированы (например, внутри вложенных циклов внутри функции), тогда это затрудняет читабельность.YMMV.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...