Olá meu caro Jairo!
A matriz só tem dois elementos! Como vou acessar o terceiro, se não existe?
É uma matriz (ou array). Dentro dela tenho dois elementos, sendo o primeiro um outro array (sub array ou nested array), com dois elementos, e o segundo elemento,que é uma string. Talvez isto te faça enxergar três elementos.
Jairo Maia escreveu:Mas onde está o exemplo para acessar o elemento 3?
Você postou um exemplo que acessa o elemento 1 e 2. Altere o elemento 3 para por exemplo "algoz", e quero ver como acessá-lo.
Veja a linha
Hb_Alert( { "aArray[ 2 ] ; ", aArray[ 2 ] } ). Ela exibe os dois elementos ( aArray[ 1, 1 ] e aArray[ 1, 2 ] ) do sub array (que é o elemento 1 de aArray) e depois exibe o segundo elemento de aArray (aArray[ 2 ]):
Código: Selecionar todos
Function Main()
LOCAL aArray := { { "TESTE", "TESTE" }, "Algoz"}
SetMode( 25,80 )
Hb_Alert( { "aArray[ 1, 1 ] ; ", aArray[ 1, 1 ] } )
Hb_Alert( { "aArray[ 1, 2 ] ; ", aArray[ 1, 2 ] } )
Hb_Alert( { "aArray[ 2 ] ; ", aArray[ 2 ] } )
RETURN NIL
//---------------------------------------------------------------
Outras coisas:
Código: Selecionar todos
LOCAL aArray := { { "TESTE", "TESTE" }, "Algoz"}
? Len( aArray ) //---> 2
? Len( aArray[ 1 ] ) //---> 2
? Len( aArray[ 2 ] ) //---> 5
? ValType( aArray ) //---> "A"
? ValType( aArray[ 1 ] ) //---> "A"
? ValType( aArray[ 2 ] ) //---> "C"
Talvez o exemplo dos títulos deixe mais clara a situação:
Código: Selecionar todos
AAdd( aTitulos, { nrTitulo, dtVencto, vlTitulo }, cdCli } )
{ nrTitulo, dtVencto, vlTitulo }, cdCli
20 22/10/2016 500,00 2058
30 31/12/2016 1.500,00 2058
421 15/01/2017 560,00 2058
524 31/01/2017 230,00 4356
602 30/11/2016 750,00 8055
650 15/12/2016 990,00 8055
Ficaria como se fosse uma tabela .DBF.
Obrigado Dr. Claudio por sua contribuição. Recursividade é um assunto interessante e muito ligado a arrays.