I have a class that has a fixed-size array of Double
, for example
Private m_values(8) as Double
What is the correct syntax for the Let
and Get
methods for an array?
Public Property Let Values (RHS(8) as Double)
m_values = RHS
End Property
Public Property Get Values() as Double
Values = m_values
End Property
The specific parts of the syntax I am unclear about:
a. In the Let
method, is RHS(8) as Double
the correct way to pass an array of 8 Double
?
b. Can I copy one array to another simply using assignment? (e.g. m_values = values
)
c. For the Get
method, is it correct for the function to be declared as Double
or should it be something like as Double(8)
?
The simple answer is that you cannot do this. Once an array has been created, its size cannot be changed. Instead, an array can only be "resized" by creating a new array with the appropriate size and copying the elements from the existing array to the new one.
Use a tuple to declare an array with fixed length in TypeScript, e.g. const arr: [string, number] = ['a', 1] . Tuple types allow us to express an array with a fixed number of elements whose types are known, but can be different. Copied! We declared a tuple with 3 elements with types of string , number and number .
Swift doesn't have fixed size arrays, and I guess many of us have experimented with various workarounds. I thought it would be fun to share and discuss our ways around Swift's lack of fixed size arrays here.
A. length will always be 2. This is the way that typed arrays (eg Float32Array ) already work. They have fixed size.
The only way to declare a property that can hold arrays is as Variant
property.
Private m_values As Variant
Public Property Let Values(RHS As Variant)
m_values = RHS
End Property
Public Property Get Values() As Variant
Values = m_values
End Property
Public Sub Test()
Dim x(8) As Double
x(1) = 123.55
x(2) = 456.45
x(5) = 789.66
x(8) = 123.777
' assign value to property
Values = x
' get value from property
Dim y() As Double
y = Values
Dim i As Integer
For i = 0 To UBound(y)
Debug.Print y(i)
Next
End Sub
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With