clone
Cria uma cópia independente de um objeto System.
Categoria: Programming > Classes
Sintaxe
c = clone(obj)
Retorna um novo objeto da mesma classe com os mesmos valores de propriedades e o mesmo estado interno.
Descrição
Objetos System são objetos handle, então a atribuição simples b = a faz de b outro nome para o mesmo objeto. clone é a forma de obter uma cópia verdadeira, incluindo o estado que o objeto acumulou, como o buffer de um filtro ou a posição em um fluxo. Também copia o estado de bloqueio do objeto.
O exemplo mostra o problema de apelidos que clone resolve, usando um objeto handle disponível em qualquer lugar.
Argumentos de entrada
obj- Um objeto System (instância de uma classe derivada de
matlab.System).
Argumentos de saída
c- Um objeto separado. Mudanças em
cnão afetamobj, e vice-versa.
Exemplo
A atribuição copia o handle, não o objeto
a = containers.Map();
b = a;
b('key') = 1;
fprintf('a has %d key, a == b is %d\n', a.Count, a == b)
a has 1 key, a == b is 1
Observações
Objetos System não estão disponíveis no MatLivre, então clone não pode ser chamada. O exemplo mostra como os objetos handle se comportam, que é o motivo de a clonagem ser necessária.