gambas - 为什么在函数调用后我对变量进行调暗后,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 要求将所有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。
推荐阅读
- angular - 使用 Cypress 写入日期字段
- java - 使用 CDK 创建/关联 ssh 密钥对到 ec2 实例
- c# - 如何使用“硬编码”字典/枚举
- docker - dockerd 命令加载监听器失败
- asp.net-mvc - 使用 Entity Framework Core 中的“用户”实体创建一个名为“团队”的实体,该实体具有经理和营销人员的集合
- java - int 上的余数运算符导致 java.util.Objects.requireNonNull?
- oracle - Oracle - 更新另一个表的触发器 - “语句被忽略”
- android - SQLiteException:在“之间”附近:语法错误(代码 1)
- sharepoint-online - 为部分站点禁用租户范围的 SPFx 解决方案
- c++ - 为什么vector children没有被修改?