Tipagem baseada em classes mais rigorosa para objectos

Tradução automática de Deepl

Com 4D 20 R10, a tipagem de objetos dá um grande passo adiante, dando-lhe mais confiança e controle em seu código. Em vez de simplesmente verificar se um valor é um objeto, 4D agora verifica se é uma instância de uma classe específica. Isto desbloqueia um auto-completar mais inteligente, validação em linha, e verificações de compilação mais estritas, ajudando-o a apanhar erros cedo e escrever código mais claro e de melhor manutenção.

Os benefícios não se limitam a variáveis e resultados de funções. Essa melhoria também se aplica ao seu modelo de dados: agora pode atribuir uma classe definida pelo usuário ou nativa (como o novo 4D.Vetor para sua implementação AI) diretamente a um campo de objeto no editor de estrutura. 4D então entende a forma completa do objeto, do tempo de design ao tempo de execução, permitindo uma experiência de desenvolvimento segura e mais confiável.

Campo de Objeto Tipado HDI

Verificações de sintaxe e compilador para atributos de campo de objeto

4D agora verifica o tipo de objeto nos seguintes lugares:

  • Editor de código, enquanto digita

  • Compilador, durante a verificação completa da sintaxe

O uso incorreto de objetos ou erros de digitação agora aparecerão como avisos ou erros antecipados, aumentando a confiabilidade durante a refatoração e depuração.

Nota: É possível atribuir um objeto de uma classe a um objeto de outra classe, desde que uma classe herde da outra. Isso suporta tanto o upcasting (atribuição de uma subclasse a uma variável da classe pai) quanto o downcasting (conversão de uma classe pai em uma subclasse, quando apropriado). Por exemplo, uma vez que a classe Cão herda da classe Animal, pode escrever ambas com segurança:
var $animal:cs.Animal:=cs.Dog.new()  // upcasting
// or
var $dog:cs.Dog:=cs.Animal.new()  // downcasting

Definir uma classe para campos de objeto

Quando declara um campo do tipo objeto na sua estrutura de dados, o inspetor do editor de estruturas inclui agora um novo campo de entrada Classe. Isso permite associar o campo a uma classe específica, como um objeto comercial ou uma classe 4D nativa.

Por exemplo, pode atribuir um tipo de 4D.Vetor a um campo chamado Vetor:

blank

Nota: O campo Classe só está disponível quando se trabalha no modo de projeto.

Editor de Código Mais Inteligente: Preenchimento automático de atributos

Graças à associação de classe, o editor de código sugere agora atributos definidos na classe especificada quando escreve código envolvendo o campo de objeto.

blank

Conclusão

Esta atualização representa uma grande melhoria em como os campos de objeto são tratados em 4D. Ao suportar uma tipagem mais estrita com classes, 4D lhe dá uma experiência de desenvolvimento mais robusta, sustentável e inteligente desde o design da estrutura até a execução em tempo de execução.

Fabrice Mainguené
- Proprietário do produto ->p>Fabrice Mainguené juntou-se à equipa do Programa 4D em Novembro, 2016. Como Proprietário do Produto, está encarregado de escrever as histórias dos utilizadores, traduzindo-as depois para especificações funcionais. O seu papel é também o de assegurar que a implementação da funcionalidade entregue vai ao encontro das necessidades do cliente.Após a obtenção da licenciatura em Informática no CNAM, Fabrice juntou-se a uma pequena empresa editora de software como programador Windev. Depois trabalhou para diferentes empresas nas áreas da indústria e comércio como programador Windev e web developer, bem como como consultor técnico sobre novas funcionalidades.