Função aClone para criar cópia de Arrays – Maratona AdvPL e TL++ 024

Nesse vídeo será demonstrado em como criar cópias de Arrays com aClone

Abaixo o código fonte desenvolvido para o exemplo em vídeo acima:

//Bibliotecas
#Include "TOTVS.ch"

/*/{Protheus.doc} User Function zExe024
Exemplo de função para clonar um Array
@type Function
@author Atilio
@since 26/11/2022
@see https://tdn.totvs.com/pages/releaseview.action?pageId=23888837
@obs Função aClone
    Parâmetros
        + Array que será clonado
    Retorno
        + Conteúdo do Array clonado

    **** Apoie nosso projeto, se inscreva em https://www.youtube.com/TerminalDeInformacao ****
/*/

User Function zExe024()
    Local aArea      := FWGetArea()
    Local aDadOrig   := {}
    Local aDadCop1   := {}
    Local aDadCop2   := {}

    //Adicionando conteudos no array original
    aAdd(aDadOrig, "Terminal de Informação")
    aAdd(aDadOrig, "Se inscreva no Canal")

    //Agora vou copiar usando o :=
    aDadCop1 := aDadOrig
    
    //E vou copiar usando o aClone
    aDadCop2 := aClone(aDadOrig)

    //Vou editar a primeira posição de cada array copiado
    //   notem que ao alterar o aDadCop1 ele atualiza o aDadOrig pois foi usado o :=
    //   então se vocês forem copiar um array, utilizem o aClone, pois o := ele acaba se tornando como um "ponteiro"
    aDadCop1[1] := "Daniel - " + aDadCop1[1]
    aDadCop2[1] := "Atilio - " + aDadCop2[1]
    FWAlertInfo("aDadOrig[1]: " + aDadOrig[1] + CRLF + "aDadCop1[1]: " + aDadCop1[1] + CRLF + "aDadCop2[1]: " + aDadCop2[1], "Posição 1 de cada Array")

    FWRestArea(aArea)
Return

Bom pessoal, por hoje é só.
Abraços e até a próxima.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

Deixe uma resposta

Terminal de Informação