aClone

Cria copia profunda (deep copy) de um array, incluindo sub-arrays. Pre-requisito pra trabalhar com arrays sem alterar o original por referencia.

Assinatura: aClone(aArr) -> aArrCopia

Retorna: Array

aClone faz copia profunda (deep) de um array — incluindo todos os sub-arrays aninhados. Em AdvPL, arrays sao passados por referencia, entao atribuir aB := aA NAO copia, apenas cria uma segunda referencia ao mesmo array. aClone resolve isso.

O problema

aA := {1, 2, 3}
aB := aA          // aB aponta pro mesmo array
aB[1] := 99
ConOut(aA[1])     // 99 — surpresa! mudou tambem.

A solucao

aA := {1, 2, 3}
aB := aClone(aA)  // copia independente
aB[1] := 99
ConOut(aA[1])     // 1 — preservou.

Quando usar

Pegadinhas

Parâmetros

NomeTipoObrigatórioDescrição
aArrArraysimArray a clonar.

Veja também