首页 > 解决方案 > 为什么在函数调用后我对变量进行调暗后,Gambas 会给我一个错误?

问题描述

我在玩 gambas。

这段代码给了我错误“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 是否有像 pascal 一样声明变量的要求?我在文档中找不到任何提及。谢谢。

标签: gambas

解决方案


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。


推荐阅读