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 c não afetam obj, 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)
Saída
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.

Veja também

isLocked isDone isequal