Usina BRAdvPL Guia
Entrar
← Todos os tópicos
FUNçãOPublicado

AClone

AClone( <aArray> )

Duplica um array, inclusive seus subarrays em estruturas multidimensionais.

ArraysMatrizesCópiaFunçõesTDN
01 · VISÃO GERAL

Visão geral

AClone() cria uma cópia independente do array informado. Diferentemente de uma atribuição simples, que apenas aponta duas variáveis para a mesma estrutura, AClone() replica os elementos e também os subarrays existentes. Por isso é indicada quando a rotina precisa alterar a cópia sem interferir no array original.

02 · SINTAXE

Sintaxe

AClone( <aArray> )

Parâmetros

aArray
ArrayObrigatório

Array que será duplicado. Pode conter uma ou mais dimensões.

03 · EXEMPLO PRÁTICO

Clonando um array simples

User Function AClone1()
    Local aMatriz1 := { 10, 20, 30 }
    Local aMatriz2 := AClone(aMatriz1)
    Local nCont := 0

    For nCont := 1 To Len(aMatriz2)
        MsgInfo( CValToChar(aMatriz2[nCont]) )
    Next nCont
Return
Resultado esperado

O array clonado contém os mesmos valores do array original: 10, 20 e 30.

04 · EXEMPLO PRÁTICO

Cópia independente de array multidimensional

User Function AClone2()
    Local aOriginal := { {"Produto", 10}, {"Serviço", 20} }
    Local aCopia := AClone(aOriginal)

    aCopia[1][2] := 99

    MsgInfo("Original: " + CValToChar(aOriginal[1][2]))
    MsgInfo("Cópia: " + CValToChar(aCopia[1][2]))
Return
Resultado esperado

Alterar a cópia não muda o valor do array original, inclusive quando há subarrays.

BOAS PRÁTICAS
  • Use AClone() quando a cópia será modificada e o array original precisa permanecer intacto.
  • AClone() é especialmente útil em arrays multidimensionais, pois também replica subarrays.
  • A referência TDN compara AClone() com ACopy(): ACopy() é voltada a arrays unidimensionais, enquanto AClone() atende estruturas multidimensionais.
ARMADILHAS COMUNS
  • Atribuir aCopia := aOriginal não clona o array; as duas variáveis passam a apontar para a mesma estrutura.
  • Clonar arrays muito grandes pode aumentar consumo de memória.
  • Ao clonar dados sensíveis ou temporários, cuide do ciclo de vida da cópia para não manter informação desnecessária em memória.

Conteúdos relacionados

REFERÊNCIAS
  1. TOTVS. AClone. TDN Framework. Duplica um array de uma ou mais dimensões.
  2. Programação em ADVPL Completo. Documentação oficial histórica de treinamento, seção 4.5.4, p. 45-50. Conteúdo resumido, revisado e exemplos adaptados.
Situação
Publicado
Página criada em
Última revisão em
Idioma original
Português
Revisão
Usina.BR
0 comentário(s) aprovado(s)

Comentários

Ainda não há comentários aprovados.

Entre com Google ou Microsoft para comentar.

Powered by Usina Docs · Alpha