Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Power Fx é a linguagem low-code que a Microsoft Power Platform utiliza. É uma linguagem de programação de uso geral, fortemente digitada, declarativa e funcional.
O Power Fx é expresso em texto simples. Trata-se de uma linguagem de pouco código que os criadores podem fazer funcionar diretamente numa barra de fórmulas semelhante à do Excel ou numa janela de texto do Visual Studio Code. O "baixo" no low-code vem da natureza concisa e simples da linguagem, que torna tarefas comuns de programação simples tanto para criadores como para programadores. Permite todo o espectro de desenvolvimento, desde o no-code para quem nunca programou antes até ao "pro-code" para profissionais experientes, sem aprendizagem ou reescrita de cliffs pelo meio. Equipas diversas podem colaborar e poupar tempo e despesas.
Nota
- O Microsoft Power Fx é o novo nome da linguagem de fórmulas para aplicações de tela no Power Apps. Esta visão geral e os artigos associados estão em progresso, à medida que a Microsoft extrai a linguagem das aplicações canvas, integra-a com outros produtos da Microsoft Power Platform e disponibiliza-a como open source. Para mais informações sobre, e experimentar a linguagem hoje, comece com Introdução a fórmulas em aplicações de tela na documentação do Power Apps e inscreva-se para obter uma avaliação do Power Apps gratuita.
- Neste artigo, makers refere-se a utilizadores que podem usar uma funcionalidade em qualquer dos extremos do espectro de competências de programação. Desenvolvedores refere-se aos utilizadores quando a funcionalidade é mais avançada e provavelmente está além do âmbito de um utilizador típico de Excel.
O Power Fx vincula objetos uns aos outros com fórmulas declarativas semelhantes a folhas de cálculo. Por exemplo, pense na propriedade Visível de um controlo de IU como uma célula numa folha de cálculo do Excel, com uma fórmula associada que calcula o seu valor com base nas propriedades de outros controlos. A lógica da fórmula recalcula o valor automaticamente, de forma semelhante a uma folha de cálculo, o que afeta a visibilidade do controlo.
Além disso, Power Fx oferece lógica imperativa quando necessário. Normalmente, as folhas de cálculo não têm botões capazes de submeter alterações a uma base de dados, mas as aplicações muitas vezes têm. A mesma linguagem de expressão é usada tanto para a lógica declarativa como para a lógica imperativa.
A Microsoft disponibilizará o Power Fx como software de código aberto. Está atualmente integrado em aplicações canvas, e a Microsoft está a extraí-lo do Power Apps para uso noutros produtos da Microsoft Power Platform e como open source. Mais informações: Microsoft Power Fx em GitHub
Este artigo é uma descrição geral da linguagem e dos seus princípios de design. Para mais informações sobre o Power Fx, consulte os seguintes artigos:
- Tipos de dados
- Operadores e identificadores
- Tabelas
- Variáveis
- Lógica imperativa
- Apoio global
- Gramática da expressão
- Gramática da fórmula YAML
Pense em folha de cálculo
E se conseguisse criar uma aplicação tão facilmente quanto criar uma folha de cálculo no Excel?
E se conseguisse tirar partido dos seus conhecimentos atuais em folhas de cálculo?
Estas questões inspiraram a criação do Power Apps e do Power Fx. Centenas de milhões de pessoas criam folhas de exercícios com Excel todos os dias. Vamos trazer-lhes uma criação de aplicações fácil e que use conceitos de Excel que já conhecem. Ao separar o Power Fx do Power Apps, iremos responder a estas perguntas para criar automatização, um agente virtual ou outros domínios.
Todas as linguagens de programação, incluindo o Power Fx, têm expressões: uma forma de representar um cálculo em números, cadeias ou outros tipos de dados. Por exemplo, mass * acceleration na maioria das linguagens expressa multiplicação de mass e de acceleration. Pode colocar o resultado de uma expressão numa variável, usá-lo como argumento para um procedimento, ou encaixá-lo numa expressão maior.
O Power Fx leva isto um passo mais adiante. Uma expressão, por si só, não diz nada sobre o que está a calcular. Cabe ao criador colocá-la numa variável ou transmiti-la para uma função. No Power Fx, em vez de escrever apenas uma expressão que não tem um significado específico, escreve uma fórmula que vincula a expressão a um identificador. Escreva force = mass * acceleration como fórmula para calcular force. À medida que ou acceleration altera, force atualiza-se mass automaticamente para um novo valor. A expressão descrevia um cálculo, uma fórmula deu a esse cálculo um nome e utilizou-o como receita. É por este motivo que nos referimos ao Power Fx como uma linguagem de fórmulas.
Por exemplo, esta fórmula do Stack Overflow procura uma cadeia em ordem inversa. No Excel, parece a seguinte imagem.
Captura de ecrã de uma barra de fórmulas no Excel com a fórmula: =RIGHT(A1,LEN(A1)- FIND("|", SUBSTITUTE(A1," ","|", LEN(A1)-LEN(SUBSTITUTE(A1," ","")))), em que a Célula A1 contém o texto "Hello, World! Prazer em conhecê-lo!" A Célula A2 contém o texto "conhecê-lo!"
O Power Fx funciona com esta mesma fórmula, com as referências de célula substituídas por referências de propriedades de controlo:
Captura de ecrã de uma barra de fórmulas do Power Fx no Power Apps. A fórmula é =RIGHT(Input.Text,Len(Input.Text)- FIND("|", SUBSTITUTE(Input.Text," ","|", Len(Input.Text)-Len(Substitute(Input.Text," ","")))) Na Caixa de entrada abaixo da fórmula, aparece o texto "Hello, World! Prazer em conhecê-lo!", aparece, letra por letra. Ao mesmo tempo, na caixa Etiqueta, aparecem as letras da última palavra. Quando aparece o texto completo na caixa de entrada, aparece a palavra "conhecê-lo!" na caixa Etiqueta.
À medida que o valor do Input controlo muda, o Label controlo recalcula automaticamente a fórmula e mostra o novo valor. Não há processadores de evento OnChange aqui, como seria comum noutras linguagens.
Outro exemplo usa uma fórmula para a Fill cor do ecrã. À medida que os controladores que controlam o Vermelho, Verde e Azul mudam, a cor do fundo muda automaticamente à medida que está a ser recalculada.
Não existem eventos OnChange para os controlos de deslize como seria comum noutras linguagens. Não existe uma forma de definir explicitamente o valor da propriedade Fill. Se a cor não estiver a funcionar conforme esperado, terá de olhar para esta fórmula para compreender por que motivo não está a funcionar. Não é necessário procurar na aplicação para localizar um fragmento de código que define a propriedade num momento inesperado; não existe um elemento de tempo. Os valores corretos da fórmula são sempre mantidos.
À medida que os controlos de deslize são definidos para uma cor escura, as etiquetas para Vermelho, Verde e Azul mudam para branco para compensar. Esta alteração ocorre através de uma fórmula simples na Color propriedade para cada controlo de rótulo.
O que é ótimo nesta fórmula é que está isolada do que acontece para a Fill cor: são dois cálculos completamente diferentes. Em vez de procedimentos monolíticos, a lógica do Power Fx é, normalmente, composta por muitas fórmulas mais pequenas que são independentes. Esta estrutura torna-os mais fáceis de compreender e permite melhorias sem perturbar a lógica existente.
O Power Fx é uma linguagem declarativa, tal como o Excel. O criador define o comportamento pretendido, mas cabe ao sistema determinar e otimizar como e quando o fazer. Para que seja prático, a maior parte do trabalho é feito através de funções puras, sem efeitos secundários, tornando o Power Fx também numa linguagem funcional (novamente, tal como o Excel).
Sempre em direto
Um aspeto determinante das folhas de cálculo é o facto de estarem sempre ativas, com as alterações a serem refletidas instantaneamente. Não existe modo de compilação ou execução numa ficha de exercícios. Quando modifica uma fórmula ou insere um valor, a folha de cálculo recalcula imediatamente para refletir as alterações. Quaisquer erros detetados surgem imediatamente e não interferem com o resto da folha.
O Power Fx implementa a mesma coisa. Utiliza um compilador incremental para manter continuamente o programa sincronizado com os dados em que está a operar. As alterações propagam-se automaticamente pelo grafo do programa, afetando os resultados dos cálculos dependentes. Estes cálculos podem influenciar propriedades em controlos como cor ou posição. O compilador incremental também fornece uma experiência de edição de fórmulas rica com IntelliSense, sugestões, preenchimento automático e verificação de escrita.
Na animação seguinte, o número da ordem é exibido num controlo de etiquetas dependente do controlo deslizante, mesmo havendo dois erros nas etiquetas abaixo. A aplicação está viva e é interativa. A primeira tentativa de corrigir a fórmula ao introduzir .InvalidName resulta na apresentação imediata de uma linha vermelha ou de um erro, como é suposto, mas a aplicação continua a funcionar.
Ao introduzir .Employee, o Data painel adiciona a tabela Employees, recupera os metadados dessa tabela e oferece imediatamente sugestões para colunas. Bastava atravessar uma relação de uma mesa para outra, e o sistema fazia os ajustes necessários às referências da aplicação. O mesmo acontece ao adicionar um .Customer.
Após cada alteração, o controlo de deslize continua com o seu último valor e quaisquer variáveis mantêm o seu valor. Ao longo de todo o texto, o número da encomenda continua a ser exibido na etiqueta superior, como deve ser. A aplicação está ativa, a processar dados reais, o tempo todo. Podes guardá-lo, sair, e outros podem abri-lo e usá-lo tal como o Excel. Não há nenhuma etapa de compilação, nem compilação, há apenas uma etapa de publicação para determinar qual a versão da aplicação pronta para os utilizadores.
Baixo código
O Power Fx descreve a lógica de negócio em fórmulas concisas, mas poderosas. A maior parte da lógica reduz-se a uma única linha, com muita expressividade e controlo para necessidades mais complexas. O objetivo é manter um número mínimo de conceitos que um criador precisa de compreender – idealmente, não mais do que um utilizador do Excel já saberia.
Por exemplo, para procurar o nome próprio de um colaborador para uma encomenda, escreva o Power Fx conforme mostrado na animação que se segue. Além dos conceitos do Excel, o único conceito adicionado aqui utilizado é a notação de ponto "." para desagregar uma estrutura de dados, neste caso, .Employee.'First Name'. A animação mostra o mapeamento entre as partes da fórmula do Power Fx e os conceitos que têm de ser explicitamente codificados no JavaScript equivalente.
Vamos analisar mais a fundo tudo o que o Power Fx faz por nós e a liberdade que tem para otimizar, porque a fórmula é declarativa:
Assíncrono: Todas as operações de dados são Power Fx assíncronas. O criador não precisa de especificar isto, nem o criador precisa de sincronizar as operações depois de terminada a chamada. O criador não precisa de estar ciente deste conceito, não precisa de saber o que é uma função de promessa ou lambda.
Local e remoto: Power Fx usa a mesma sintaxe e funções para dados que são locais na memória e conecta remotamente um banco de dados ou serviço. O utilizador não precisa de pensar nesta distinção. O Power Fx delega automaticamente aquilo que pode para o servidor, para processar filtros e ordena lá de forma mais eficiente.
Dados relacionais: Pedidos e Clientes são duas tabelas diferentes, com uma relação muitos-para-um. A consulta OData requer um "$expand" com conhecimentos da chave estrangeira, semelhante a uma Junção em SQL. A fórmula não tem nada disto, na verdade, as chaves da base de dados são outro conceito que o criador não precisa de saber. O criador pode usar uma notação de ponto simples para aceder a todo o gráfico de relações de um registo.
Projeção: Ao escrever uma consulta, muitos desenvolvedores escrevem
select * from table, o que traz de volta todas as colunas de dados. O Power Fx analisa todas as colunas utilizadas através de toda a aplicação, mesmo através de dependências de fórmulas. A projeção é otimizada automaticamente e, mais uma vez, um criador não precisa de saber o que significa "projeção".Recuperar apenas o que é necessário: Neste exemplo, a
LookUpfunção implica que apenas um registro deve ser recuperado e isso é tudo o que é retornado. Se forem solicitados mais registos utilizando a funçãoFilter– para a qual poderão ser elegíveis milhares de registos – só uma única página de dados será obtida de cada vez, na ordem dos 100 registos por página. O utilizador tem de fazer gestos através de uma galeria ou tabela de dados para ver mais dados, o que automaticamente traz mais dados para ele. O criador pode analisar grandes conjuntos de dados sem precisar de pensar em limitar os pedidos de dados a segmentos geríveis.Executa-se apenas quando necessário: Define-se uma fórmula para a
Textpropriedade do controlo do rótulo. À medida que a variável selecionada muda,LookUpé automaticamente recalculado e a etiqueta é atualizada. O criador não precisava de escrever um processador onChange para Seleção e não precisava de se lembrar que esta etiqueta depende dele. Esta é uma programação declarativa, tal como discutido anteriormente: o criador especificou o que queria ter na etiqueta, não como ou quando deveria ser recolhida. Se este rótulo não for visível porque está num ecrã que não é visível, ou se a suaVisiblepropriedade for falsa, pode adiar esse cálculo até que o rótulo seja visível e efetivamente eliminá-lo se isso acontecer raramente.Tradução de sintaxe Excel : Muitos utilizadores sabem que o ampersand (&) é usado para concatenação de cadeias no Excel. O JavaScript utiliza um sinal de adição (+) e outros idiomas utilizam um ponto (.).Nomes deexibição e localização
First Name: Power Fx é usado na fórmula enquantonwind_firstnameé usado no equivalente JavaScript. No Microsoft Dataverse e no SharePoint, existe um nome a apresentar para colunas e tabelas, além de um nome lógico exclusivo. Os nomes a apresentar são muitas vezes muito mais intuitivos, como neste caso, mas têm outra qualidade importante na medida em que podem ser localizados. Se tiver uma equipa multilíngue, cada membro da equipa poderá ver os nomes de tabelas e de campos no seu próprio idioma. Em todos os casos de utilização, o Power Fx certifica-se de que o nome lógico correto é enviado automaticamente para a base de dados.
Sem código
Não precisas de ler ou escrever Power Fx para começar a expressar lógica. Podes expressar muitas personalizações e lógica através de switches simples e construtores de interface. Estas ferramentas no-code são feitas para ler e escrever Power Fx, por isso há bastante margem para alguém levar isto mais longe. No entanto, as ferramentas no-code nunca oferecem toda a expressividade da linguagem completa. Mesmo quando se usam construtores sem código, a barra de fórmulas está em destaque no Power Apps para educar o criador sobre o que está a ser feito em seu nome, para que possa começar a aprender Power Fx.
Vamos ver alguns exemplos. No Power Apps, o painel de propriedades fornece comutadores e botões sem código para as propriedades dos controlos. Na prática, a maioria dos valores de propriedade são estáticos. Pode usar o criadores de cores para alterar a cor de fundo do Gallery. Tenha em atenção que a barra de fórmulas reflete esta mudança, atualizando a fórmula para uma chamada RGBA diferente. A qualquer momento, pode ir à barra de fórmulas e levar esta alteração um passo mais longe – neste exemplo, usando ColorFade para ajustar a cor. A propriedade de cor continua a ser apresentada no painel de propriedades, mas um ícone fx aparece a pairar e será direcionado para a barra de fórmulas. Isto funciona na perfeição de duas maneiras: remover a chamada ColorFade devolve a cor a algo que o painel de propriedades consegue compreender e poderá utilizá-la novamente para definir uma cor.
Eis um exemplo mais complicado. A galeria mostra uma lista de empregados da Dataverse. O Dataverse fornece vistas sobre dados de tabela. Pode selecionar uma destas vistas e a fórmula muda para usar a Filter função com este nome de vista. Podes usar os dois menus suspensos para ajustar a tabela e a visualização corretas sem tocar na barra de fórmulas. Mas digamos que quer ir mais longe e adicionar uma ordenação. Podes adicionar essa função na barra de fórmulas, e o painel de propriedades volta a mostrar um ícone de efeitos e direciona as modificações para a barra de fórmulas. E, novamente, se simplificares a fórmula para algo que o painel de propriedades possa ler e escrever, pode ser usada.
Estes exemplos são simples. O Power Fx é uma excelente linguagem para descrever interações sem código. É conciso, poderoso e fácil de interpretar. Proporciona a margem de manobra que tantas vezes é necessária com "sem penhascos" até low-code.
Código pro
Os criadores de low-code por vezes constroem soluções que requerem a ajuda de um especialista ou que são assumidas por um programador profissional para manutenção e melhoria. Os profissionais também apreciam que a programação de baixo código pode ser mais fácil, mais rápida e menos dispendiosa do que criar uma ferramenta profissional. Nem todas as situações requerem o poder total do Visual Studio.
Os profissionais querem usar ferramentas profissionais para serem mais produtivos. Pode armazenar fórmulas Power Fx em ficheiros fonte YAML, que são fáceis de editar usando Visual Studio Code, Visual Studio ou qualquer outro editor de texto. Armazenar fórmulas em ficheiros YAML permite-lhe colocar o Power Fx sob controlo de versões usando GitHub, Azure DevOps ou qualquer outro sistema de controlo de código-fonte.
O Power Fx suporta componentes baseados em fórmulas para partilha e reutilização. Suporta parâmetros para as propriedades dos componentes, permitindo a criação de funções puramente definidas pelo utilizador com mais melhorias no caminho.
Além disso, o Power Fx é excelente a juntar componentes e serviços criados por profissionais. Os conectores prontos a usar fornecem acesso a centenas de fontes de dados e serviços web. Conectores personalizados permitem que o Power Fx comunique com qualquer serviço web REST. Componentes de código permitem que o Power Fx interaja com JavaScript totalmente personalizado no ecrã e na página.
Princípios de design
Simples
O Power Fx foi concebido para atingir o público maker, cujos membros não são formados como desenvolvedores. Sempre que possível, a linguagem utiliza conhecimentos que este público já conhece ou pode captar rapidamente. O número de conceitos necessários para ser bem sucedido é reduzido ao mínimo.
Simplicidade também é boa para os programadores. Para o público de programadores, o Power Fx pretende ser uma linguagem low-code que reduza o tempo necessário para construir uma solução.
Consistência com Excel
A linguagem Microsoft Power Fx aproveita muita da linguagem de fórmulas do Excel. Aproveita o conhecimento e a experiência em Excel dos muitos fabricantes que também utilizam Excel. Os tipos, operadores e semântica de função estão o mais próximo possível do Excel.
Se o Excel não tiver resposta, o Power Fx procura agora o SQL. Depois do Excel, o SQL é a próxima linguagem declarativa mais utilizado e pode fornecer orientação sobre as operações de dados e datilografia forte que o Excel não tem.
Declarativo
O criador descreve o que querem que a respetiva lógica faça, não exatamente como ou quando o fazer. Esta abordagem permite ao compilador otimizar ao realizar operações em paralelo, adiar o trabalho até ser necessário e pré-buscar e reutilizar dados em cache.
Por exemplo, numa folha de exercícios do Excel, o autor define as relações entre células, mas o Excel decide quando e por que ordem avaliar as fórmulas. De forma semelhante, pode pensar nas fórmulas numa aplicação como "recalculando" conforme necessário, com base em ações do utilizador, alterações na base de dados ou eventos temporizadores.
Functional
Use funções puras que não tenham efeitos secundários. Esta abordagem resulta numa lógica mais fácil de entender e que dá ao compilador a maior liberdade para otimizar.
Ao contrário do Excel, as aplicações, por natureza, mutam estado. Por exemplo, as aplicações têm botões que guardam alterações ao registo numa base de dados. Algumas funções, portanto, têm efeitos secundários, embora limitem estes efeitos tanto quanto possível.
Composição
Sempre que possível, adicione funcionalidades que compunham bem com a funcionalidade existente. Podes decompor funções poderosas em partes mais pequenas que podes usar mais facilmente de forma independente.
Por exemplo, um controlo Galeria não tem propriedades Sort e Filter separadas. Em vez disso, compões as Sort funções e Filter juntas numa única Items propriedade. Sobrepõe-se a interface para expressar Sort e Filter comportar por cima da Items propriedade usando um editor bidirecional para essa propriedade.
Com importância
Os tipos de todos os valores são conhecidos em tempo de compilação. Esta abordagem permite a deteção precoce de erros e sugestões detalhadas durante a autoria.
Tipos polimórficos são suportados, mas antes de os poder usar, deve fixar o seu tipo a um tipo estático e esse tipo deve ser conhecido em tempo de compilação. As funções IsType e AsType são fornecidas para tipos de testes e transmissão.
Inferência de tipo
Os tipos são derivados da sua utilização sem serem declarados. Por exemplo, definir uma variável para vários resultados no tipo da variável que está a ser estabelecida como um número.
A utilização do tipo conflituoso resulta num erro no tempo de compilação.
Separadores decimais sensíveis à região
Algumas regiões do mundo utilizam o ponto (.) como separador decimal, enquanto outros utilizam a vírgula (,). Excel segue esta convenção regional. Outras linguagens de programação geralmente usam um ponto canónico (.) como separador decimal para todos os utilizadores em todo o mundo. Para ser o mais acessível possível para os criadores a todos os níveis, é importante que 3,14 seja um número decimal para uma pessoa em França que tenha usado essa sintaxe toda a sua vida.
A escolha do separador decimal tem um impacto em cascata no separador de lista, utilizado para argumentos de chamada de função, e o operador de encadeamento.
| Separador decimal do idioma do autor | Separador decimal do Power Fx | Separador de lista do Power Fx | Operador de encadeamento do Power Fx |
|---|---|---|---|
| . (ponto) | . (ponto) | , (vírgula) | ; (ponto e vírgula) |
| , (vírgula) | , (vírgula) | ; (ponto e vírgula) | ;; (ponto e vírgula duplo) |
Mais informações: Suporte global
Não orientado para objetos
O Excel não tem orientações para objetos, nem o Power Fx. Por exemplo, em algumas linguagens, o comprimento de uma cadeia é expresso como uma propriedade da cadeia, como "Hello World".length no JavaScript. O Excel e o Power Fx, em vez disso, expressam isto em termos de uma função, como Len( "Hello World" ).
Os componentes com propriedades e métodos são orientados para objetos e o Power Fx funciona facilmente com eles. Mas, sempre que possível, prefira uma abordagem funcional.
Extensível
Os criadores podem criar os seus componentes e funções utilizando o próprio Power Fx. Os programadores podem criar os seus componentes e funções escrevendo JavaScript.
Fácil de utilizar por programadores
Embora os fabricantes sejam o principal alvo, tente ser amigável aos desenvolvedores sempre que possível. Se não entrar em conflito com os princípios de design descritos anteriormente, faça as coisas de uma forma que o programador aprecie. Por exemplo, o Excel não tem capacidade para adicionar comentários, por isso use comentários tipo linha e inline semelhantes a C.
Evolução da linguagem
A evolução das linguagens de programação é necessária e complicada. Todos – com razão – receiam que uma alteração, por muito bem intencionada que seja, possa quebrar o código existente e exigir que os utilizadores aprendam um novo padrão. A Power Fx leva a sério a compatibilidade retroativa, mas a equipa da Power Fx também acredita firmemente que nem sempre vai acertar à primeira e que a comunidade pode aprender coletivamente o que é melhor. Uma linguagem de programação tem de evoluir, e o Power Fx foi concebido para apoiar a evolução da linguagem desde o início.
Cada documento Power Fx guardado inclui um carimbo de versão da língua. Se a equipa Power Fx quiser fazer uma alteração incompatível, escrevem o que chamam de "back compat converter" que reescreve automaticamente a fórmula na próxima edição que for editada. Se a alteração for algo importante sobre o qual a equipa precisa de informar o utilizador, a aplicação mostra uma mensagem com um link para a documentação. Ao utilizar esta funcionalidade, o Power Fx ainda pode carregar aplicações que foram construídas com as versões pré-visualizadas do Power Apps de há muitos anos, apesar de todas as mudanças que ocorreram desde então.
Por exemplo, a equipa Power Fx introduziu a ShowError função para mostrar um banner de erro com fundo vermelho.
Os utilizadores adoraram, mas também pediram uma forma de mostrar um banner de sucesso (fundo verde) ou um banner informativo (fundo azul). Assim, a equipa criou uma função mais genérica Notify que utiliza um segundo argumento para o tipo de notificação. A equipa podia simplesmente ter acrescentado Notify e mantido ShowError como estava, mas em vez disso substituiu ShowError por Notify. Removeram uma função que estava em produção e substituíram-na por outra. Como haveria duas formas de fazer o mesmo, esta mudança teria causado confusão — especialmente para novos utilizadores — e, mais importante ainda, teria acrescentado complexidade. Ninguém se queixou, toda a gente apreciou a mudança e, em seguida, passou para a sua próxima funcionalidade Notify.
É assim que a mesma aplicação fica quando carregada na versão mais recente do Power Apps. Não foi necessária qualquer ação por parte do utilizador para esta transformação acontecer, ocorreu automaticamente quando a aplicação foi aberta.
Ao utilizar esta funcionalidade, o Power Fx pode evoluir mais rapidamente e de forma mais agressiva do que a maioria das linguagens de programação.
Sem valor indefinido
Algumas linguagens, como o JavaScript, utilizam o conceito de um valor indefinido para variáveis não inicializadas ou propriedades em falta. Para simplificar, o Power Fx evita este conceito. As instâncias que estariam indefinidas noutras linguagens são tratadas como um erro ou um valor em branco. Por exemplo, todas as variáveis com inicialização anulada começam com um valor em branco. Todos os tipos de dados podem assumir o valor de em branco.
Artigos relacionados
Tipos de dados
Operadores e identificadores
Tabelas
Variáveis
Lógica imperativa
Apoio global
Gramática da expressão
Gramática da fórmula YAML
Fórmulas em aplicativos de tela