handle

Classe base abstrata para objetos compartilhados por referência.

Categoria: Other public functions: lang

Sintaxe

classdef MyClass < handle

Declara uma classe cujos objetos são objetos handle.

isa(obj, 'handle')

Testa se um objeto é um objeto handle.

Descrição

Objetos de classes comuns (de valor) são copiados na atribuição: alterar a cópia não afeta o original. Objetos de uma classe que herda de handle são referências: a atribuição b = a faz as duas variáveis apontarem para o mesmo objeto, então uma mudança por uma delas é vista pela outra. Serve para coisas com identidade, como uma janela, uma conexão ou um cache compartilhado.

Objetos handle oferecem também delete, isvalid e eventos. containers.Map e objetos de memoize são exemplos de objetos handle que dispensam definir uma classe.

Exemplo

Comportamento por referência

a = containers.Map();
b = a;
b('k') = 5;
disp(a.isKey('k'))
disp(isa(a, 'handle'))
Saída
   1
   1

Observações

Chamada como função sem argumento, handle gera erro no MatLivre; serve apenas como superclasse e com isa.

Veja também

containers.Map isa delete isvalid