Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Estado
subtletrue
colourGreen
titletlpp - language

Nota
iconfalse
titleAbrangência

A partir da versão 20.3.2.0 do Application Server, será possível chamar funções ou métodos em TLPP utilizando o recurso de passagem de parâmetros pelo nome.


Seja uma função xParams de 8 parâmetros:

Bloco de código
languagejava
titleExemplo - Uma função de 8 parâmetros
Function xParams(p1, p2, p3, p4, p5, p6, p7, p8)
Return .T.


No modo convencional, que vale tanto para PRW quanto para TLPP, podemos chamar a função xParams

  • passando todos os parâmetros;
  • passando apenas os primeiros;
  • deixando vazio um ou mais parâmetros intermediários.


Bloco de código
languagejava
titleExemplo - Formas tradicionais de chamar xParams
xParams(a, b, c, d, e, f, g, h)
xParams(a, b, c, d)
xParams(a, b,  ,  ,  ,  , g, h)


Com o novo recurso de parâmetros nomeados, podemos continuar fazendo do modo tradicional ou, se preferirmos, aproveitar a facilidade da passagem nomeada:

Bloco de código
languagejava
titleExemplo - Forma moderna de chamar xParams (passagem nomeada)
xParams(p2=b, p1=a, p6=f) // todos nomeados (fora de ordem, inclusive)
xParams(a, b, p7=g, p8=h) // a e b de modo tradicional, g e h pelo recurso nomeado



Nota
iconfalse
titleEsse recurso vale só para TLPP ?
  • TLPP e PRW são beneficiados.
  • Só precisa saber que:

    ...

      • a chamada da função ou método precisa partir do TLPP. (concordo)

    ...

      • mas a função ou método chamado, pode estar implementado tanto em TLPP quanto em PRW. (grande sorriso)
    Nota
    iconfalse
    titleTem alguma dica de onde aplicar?
    • Temos

    ...

    • sim, uma super dica. (piscar o olho)
    • Sabe aquelas funções com muitos parâmetros, que dificulta saber a posição exata de cada um deles?
    • Então, agora com parâmetros nomeados, a gente pode deixar de encher de vírgulas e passar simplesmente os nomes dos parâmetros que a gente quer fornecer.
    • Assim, ajuda muito a legibilidade do programa, facilita o desenvolvimento e melhora a qualidade. (grande sorriso)


    Nota
    iconfalse
    titleE se o parâmetro for tipado?
    • Esse é um excelente ponto.
    • A passagem por nome convive perfeitamente com a checagem de tipos.
    • As mesmas validações feitas na passagem tradicional são também realizadas na passagem nomeada.
    • E vamos te mostrar um exemplo disso (abaixo). 
    Bloco de código
    languagejava
    titleExemplo - parâmetros nomeados x tipagem
    // Uma função com tipagem de parâmetros
    Function xFunc(nParm as numeric, cParm as character, lParm as logical)
    Return .T.
    
    //Em outro lugar ou em outro fonte, algumas chamadas para essa função
    xFunc(nParm=10, lParm=.F., cParm='textual') // chamada ok
    xFunc(nParm=10, lParm=0, cParm='textual')   // incompatibilidade de tipos em lParm (esperado 'L' e chegando 'N')