arrays - 在 QBasic 中使用用户定义的 TYPE 中的数组
问题描述
我正在尝试学习 QBasic 在 Amstrad Alt-286 上编程。在我的一个程序中,我使用了几种用户定义的类型,有时是 TYPE 数组。在其中一些中,我想声明一个这样的数组:
TYPE TestType
dataArray AS STRING * 4 'Since "dataArray AS _BYTE * 4" doesn't work (wrong syntax compiler says).
END TYPE
然后我像这样声明我的类型:
DIM customType(2) AS TestType
只要我想像这样在我的类型的 dataArray 中写入:
customType(1).dataArray(2) = 3
编译器告诉我这是一个无效的语法。
那么,如何在定义的TYPE中存储一个数组呢?以及如何使用它?
解决方案
这里有两个问题。在 QB64 中,您根本无法将数组放入用户定义的类型中。根据 QB64 Wiki关于 TYPE 定义的文章:
TYPE 定义不能包含数组变量!数组可以维度化为 TYPE 定义。
除此之外,您的 dataArray (已声明dataArray AS STRING * 4
)根本没有声明数组,而是声明了一个 4 个字符的字符串。这就是为什么当您尝试使用数组语法访问 dataArray 的元素时会出现语法错误的原因。您可以声明一个由自定义类型组成的数组,如下所示:
TYPE TestType
dataElement AS _BYTE
END TYPE
DIM CustomType(4) AS TestType
CustomType(1).dataElement = 3
这声明了一个 TYPE TestType 的 4 元素数组,每个元素包含一个 TYPE _BYTE 变量。这大约是您可以达到的目标。祝你好运!
推荐阅读
- node.js - 如何从输出nodejs mongodb数据库中删除数据之一
- python - Requests 返回 Too Many Requests 状态码
- python - 在python中组合两个多行字符串
- python - 如何根据其他数据框行值广播数据框行值?
- android - 我想在我的 Android 应用程序中使用蓝牙邻近功能添加联系人跟踪功能,例如 arogya setu 应用程序?
- kibana - vega lite 中的 KibanaSetTimeFilter
- python - Django中的属性错误
- php - 数据库类和 bindParam
- macos - mac os服务器安装过程中出现问题
- java - 单击关闭按钮时会出现一个框架