我在玩甘巴。
这段代码给我错误“ 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那样声明变量的要求?我在文档中找不到任何提及。谢谢。
答案 0 :(得分:1)
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。
答案 1 :(得分:0)
自Gambas 3.12起,不再需要此功能。
但是我建议继续在顶部函数声明变量。两年后,它使代码更具可读性。