🚀 Oferecendo Serviços Remotos de Desenvolvedor AdvPL e Mais 🖥️ Olá pessoal, Espero que este post encontre todos vocês bem! É com grande entusiasmo que compartilho que estou expandindo meus serviços como Desenvolvedor AdvPL para novos desafios e colaborações. Com mais de duas décadas de experiência sólida, minha jornada profissional tem sido enriquecedora, com a oportunidade de participar de projetos empolgantes ao longo dos anos. Agora, estou ansioso para trazer minha experiência e habilidades para novas equipes e projetos, trabalhando de forma remota. Minha expertise abrange não apenas AdvPL, mas também outras tecnologias-chave, incluindo JS, SQL, Infraestrutura e Otimização de Processos. Acredito que essa combinação de conhecimentos me permite oferecer soluções abrangentes e eficazes para uma variedade de necessidades de desenvolvimento. Acredito que a tecnologia tem o poder de transformar negócios e impulsionar o sucesso, e estou comprometido em ajudar meus clientes a alcançar seu
Arrays Multidimensionais:
Examine a seguinte declaração de um array bidimensional:
Local aValores[ 3 , 2 ]
/*/
que também pode ser declarado como:
Local aValores := Array( 3 , 2 )
Local aValores := { { NIL , NIL } , { NIL , NIL } , { NIL , NIL } }
Local aValores := { Array( 2 ) , Array( 2 ) , Array( 2 ) }
/*/
Em Advpl essa(s) declaração(ões) serão implementadas como um array de três elementos do tipo array e cada array com dois elementos ( onde os valores iniciais são NIL )
Podemos testar da seguinte forma
ValType( aValores ) //A
Len( aValores ) //3
ValType( aValores[1] ) ) //A
Len( aValores[1] ) //2
aValores[1,1] //NIL
ValType( aValores[1,1] ) //U
Conforme demonstrado acima, aValores é uma referência a um Array de Três elementos, em que cada elemento é uma referência à outra array de dois elementos.
Cada elemento de aValores é simplesmente outro array e podemos testá-lo dessa forma. Por exemplo, para localizar aValores[1] passe-o para a função aScan(), como em:
nPos := aScan( aValores[1] , { |x| x == “Naldo” } )
Para classificar aValores[2], passe-o para aSort() com:
aSort( aValores[2] )
ou
aSort( aValores[2] , NIL , NIL , { |x,y| x < y } )
Abaixo segue a estrutura de memória de um array bidimensional.
Examine a seguinte declaração de um array bidimensional:
Local aValores[ 3 , 2 ]
/*/
que também pode ser declarado como:
Local aValores := Array( 3 , 2 )
Local aValores := { { NIL , NIL } , { NIL , NIL } , { NIL , NIL } }
Local aValores := { Array( 2 ) , Array( 2 ) , Array( 2 ) }
/*/
Em Advpl essa(s) declaração(ões) serão implementadas como um array de três elementos do tipo array e cada array com dois elementos ( onde os valores iniciais são NIL )
Podemos testar da seguinte forma
ValType( aValores ) //A
Len( aValores ) //3
ValType( aValores[1] ) ) //A
Len( aValores[1] ) //2
aValores[1,1] //NIL
ValType( aValores[1,1] ) //U
Conforme demonstrado acima, aValores é uma referência a um Array de Três elementos, em que cada elemento é uma referência à outra array de dois elementos.
Cada elemento de aValores é simplesmente outro array e podemos testá-lo dessa forma. Por exemplo, para localizar aValores[1] passe-o para a função aScan(), como em:
nPos := aScan( aValores[1] , { |x| x == “Naldo” } )
Para classificar aValores[2], passe-o para aSort() com:
aSort( aValores[2] )
ou
aSort( aValores[2] , NIL , NIL , { |x,y| x < y } )
Abaixo segue a estrutura de memória de um array bidimensional.
É possível referenciar um elemento do array aValores como aValores[1,1] ou aValores[1] mas, aValores[ , 1 ], apesar de não ocasionar erro durante a compilação gerará erro durante a execução. Isso significa que não podemos classificar, localizar ou selecionar colunas diretamente de um array bidimensional.
Nota: Em Advpl os Arrays Multidimensionais são implementados como Arrays de Arrays.
Nota: Em Advpl os Arrays Multidimensionais são implementados como Arrays de Arrays.
Comentários
Postar um comentário