Qui tralascio le Enbedded array.
Se vuoi usare la notazione suggerita da Gambas allora scrivi aArr.
Le array sono degli oggetti e come tali vanno istanziati al momento del loro uso che comprende anche il loro dimensionamento, quindi se prima o dopo dipende dalla situazione.
Nel caso di Private aString as String[] ha più senso istanziarla dopo ma con Dim se la istanzi subito non cambia niente e scrivi meno :)
Ma, se per esempio il vettore di interi viene scritto:
Dim aInt as integer[] = [1, 2, 3]
Dim aInt2 as Integer[]
aInt2 = aInt
Questi due vettori vengono istanziati automaticamente e non abbisognano della parola chiave New.
Personalmente uso Dim uArr as String[] e vedo tutto funzionare regolarmente.
...a me non sembra:
Public Sub Main()
Dim uArr As String[]
uArr[0] = "abcde"
End
Public Sub Main()
Dim uArr As String[]
uArr.Push("abcde")
End
Non capisco... entrambe non funzionano la prima contiene un errore di sintassi oltre ad non essere istanziata e la seconda non è istanziata.
Cosa è che volevi dire e che non ho capito? :-\
E comunque sia andrebbero scritte così (come ho inteso facesse dregi):
Public Sub Main()
Dim uArr As String[]
uArr = New String[]
uArr.Push("abcde")
Print uArr[0]
End
Public Sub Main()
Dim uArr As String[]
uArr = New String[2]
uArr[0] = "abcde"
Print uArr[0]
End
:ciao:
Giusto spetta a dregi precisare che cosa intendesse dire con:
Personalmente uso Dim uArr as String[] e vedo tutto funzionare regolarmente.
Io preferirei non lasciare il discorso a metà vorrei concludere il mio pensiero sulle array di Gambas.
Come abbiamo visto nella mia risposta a vuott dichiaro un array dinamico per poi istanziarlo immediatamente dopo a dimensione fissa.
Questo ha poco senso, se sappiamo già la dimensione meglio è metterla nella dichiarazione della variabile:
Dim aArr As New String[10]
a meno che il numero esatto non lo sappiate più avanti nel codice.
In questo caso non so se sia più corretto in termini di memoria, invece che dinamica dichiarare l'array con dimensione 1 e poi ridimensionarla.
Chiedo aiuto a vuott che ne sa più di me.
E già che ne ho parlato mostro un codice che ridimensiona un array dichiarato già dimensionato:
Public Sub Main()
Dim aArr As New String[1]
aArr[0] = "A 1"
For i As Integer = 2 To 10
aArr.Resize(i)
aArr[i - 1] = "A " & i
Next
For Each s As String In aArr
Print s
Next
End