Árvore de páginas

Retorna o número de parâmetros passados para uma função AdvPL.

Sintaxe

PCount()

Retorno

Nome

Tipo

Descrição

nRet

numérico

Retorna o número de parâmetros passados para uma função AdvPL.

Observações

  • Mesmo que a quantidade de parâmetros passados para uma função não seja igual ao que foi declarado, PCount retorna a quantidade de parâmetros passados na chamada.
  • PCount funciona também para métodos de classe e blocos de código.

Exemplos

Exemplo 1
#include "totvs.ch"

class myclass
  method new() constructor
  method mymethod( a )
endclass

method new() class myclass
return

method mymethod( a ) class myclass
return PCount()

static function myfunc( a, b )
return PCount()

user function pcount1()
  Local oObj
  Local bBlock
  
  oObj := myclass():new()
  
  conout( "PCount on functions" )
  conout( myfunc() )                // Vai exibir "0"
  conout( myfunc( "a" ) )           // Vai exibir "1"
  conout( myfunc( "a", "b" ) )      // Vai exibir "2"
  conout( myfunc( "a", ) )          // Vai exibir "2"
  conout( myfunc( "a", Nil ) )      // Vai exibir "2"
  conout( myfunc( "a", "b", "c" ) ) // Vai exibir "3"
  conout( myfunc( "a", "b",  ) )    // Vai exibir "3"
  conout( myfunc( , "b",  ) )       // Vai exibir "3"
  conout( myfunc( "a", , "c" ) )    // Vai exibir "3"
  conout( myfunc( , , ) )           // Vai exibir "3"
  
  conout( "PCount on classes" )
  conout( oObj:mymethod() )       // Vai exibir "0"
  conout( oObj:mymethod( "a" ) )  // Vai exibir "1"
  conout( oObj:mymethod( "a", ) ) // Vai exibir "2"
  conout( oObj:mymethod( Nil, ) ) // Vai exibir "2"
  
  bBlock := { | x | PCount() }
  conout( "PCount on code block" )
  conout( Eval( bBlock ) )       // Vai exibir "0"
  conout( Eval( bBlock, "a" ) )  // Vai exibir "1"
  conout( Eval( bBlock, "a", ) ) // Vai exibir "2"
  conout( Eval( bBlock, Nil, ) ) // Vai exibir "2"
return
  • Sem rótulos