繁体   English   中英

Visual Basic 6.0:函数返回数组

[英]Visual basic 6.0: function returning array

是否有更好的方法来创建函数返回数组:

function foo
 Dim bar(1 to 2)as double
 bar(1)=1
 bar(2)=2
 foo=bar
end function

并在代码中:

arrayx=foo

因为当我将Dim arrayx(1 to 2) as double它会抛出错误“无法分配数组”当我没有声明变量arrayx时,它似乎没有任何问题。

正如马特所说 ,这个错误:

编译错误:无法分配给数组

源于你试图将Foo()的返回值赋给固定数组而不是动态数组的事实。 您只需要向编译器指出您声明的变量是一个数组,而不是数组的实际大小。 它将根据返回的数组大小计算出大小。

此外,您应始终为函数指定返回值类型。 您可以在VB中通过在函数声明的末尾放置一个As Type子句来实现。 在这种情况下,您需要一个双精度数组,写为Double()

因此,重写您的代码看起来像这样,并结合这两个变化:

Function Foo() As Double()      ' note the specification of a return value
   Dim bar(1 To 2) As Double
   bar(1) = 1
   bar(2) = 2
   Foo = bar
End Function

Private Sub Command1_Click()
   Dim arrayx() As Double       ' note the declaration of a DYNAMIC array
   arrayx = Foo()
   MsgBox arrayx(1)
End Sub

此代码显示一个值为“1”的消息框,正如预期的那样。

您只能分配给动态数组 尝试:

Dim arrayx() as Double

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM