“数组赋值”和“从函数返回数组”如何使用
编号:QA001859
建立日期: 1999年10月14日 最后修改日期:1999年10月14日
所属类别:
Lily_China1:
有关VB 6.0的数组新功能,如“数组赋值”和“从函数返回数组”具体如何使用。
Dim k(2) As Variant
Private Sub Form_Load()
Dim c(3)
k(0) = 2
Print k(1),
For i = 1 To 3
c(i) = i
Next i
k(1) = c
For i = 2 To 4
c(i - 1) = i
Next i
k(2) = c
End Sub
这样的情况可以成功,数组元素k(0)=2,而k(1)和k(2)却分别是数组。这种存储机制是如何的?系统如何管理这样的数组。
而下面的示例却不行:
Public lTrance As Integer
Public Type 均方误差
误差(1 To 6, 1 To 6) As Single
End Type
Public VsFE(2 To CalNum) As 均方误差
在代码中有这样一句
VsFE(lTrance + 1).误差() = Next预测误差(lTrance)
其中“Next预测误差()”是自定义的一个函数,返回一个(1 To 6, 1 To 6)数组(即一个6*6的矩阵)
究竟应该怎样使用这项新技术?
回答:
Variant类型是一个比较特殊的类型,实际VB实现它的时候使用了C语言的union类型,而VB中没有union类型,所以你觉得奇怪。Variant类型可以存放任何类型的数据。如果是Variant类型的数组,则每个元素都是Variant类型的。你将数组k的三个元素设置为不同的数据类型,VB都将它们转换为Variant类型然后保存起来,所以数组的每个元素仍然是Variant类型的,只是它们保存的数据不同吧了。
至于函数返回数组,接收返回值的变量必须Variant类型。如:
Dim v As Variant
v= Next预测误差(lTrance)
Print v(0)
这里v只是一个Variant变量,而不是数组,但由于你将一个数组赋给它,所以你也可以使用v()的形式访问它,这是VB的一个特殊之处。
此问题由李海回答。
| |
|
|
| |
|
|