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'))
1
1
Observações
Chamada como função sem argumento, handle gera erro no MatLivre; serve apenas como superclasse e com isa.