Página 1 de 1

FUNCTION hb_SendMail( ... ) pontinhos ???

Enviado: 05 Fev 2020 12:00
por susviela@bol.com.br
Estava vendo esse fonte e me deparei com esse trecho de código, e fiquei na dúvida. *Para que servem esses três pontinhos na chamada da função ?*

Seriam número de parâmetros variáveis ? ( pelo menos foi isso que me pareceu, nunca usei esse recurso )

Código: Selecionar todos

#if defined( HB_LEGACY_LEVEL4 )
FUNCTION hb_SendMail( ... )
   RETURN tip_MailSend( ... )
#endif

Alias pegando carona nesse post: hb_SendMail( ) está funcionando no Harbour 3.2 ?

.
Estava vendo uns posts aqui no fórum, e me parece que só estava funcionando no 3.4 !!!

FUNCTION hb_SendMail( ... ) pontinhos ???

Enviado: 05 Fev 2020 13:12
por Itamar M. Lins Jr.
Ola!
Isso evita de ficar passando os parâmetros.
MyFunc(...)
Poderia ser, MyFunc(pN1,pC1,pD1,pL1)
Os pontinhos abre precedência para qualquer quantidade de parâmetros.
Use as funções hb_aparam(), pcount(), hb_pvalue() para saber ver a ordem etc, que vem os parâmetros.

Código: Selecionar todos

unction Main(...)
    LOCAL argc
    LOCAL argv := hb_aParams()
    LOCAL cArg

    // CALCULATE ARGC
    argc := len(argv)

    // PRINT THE ARGUMENTS
    ? "There were ", argc, " arguments total, as shown below:"
    FOR EACH cArg IN argv
       ? "Argument ", cArg:__enumIndex(), " is ", cArg
    NEXT
    ? "No more arguments."

RETURN Nil
Normal.

Código: Selecionar todos

function Test( nValue, cString )
if PCount() == 2
? hb_PValue( 1 ), nValue
? hb_PValue( 2 ), cString
endif
return ni
Saudações,
Itamar M. Lins Jr.

FUNCTION hb_SendMail( ... ) pontinhos ???

Enviado: 05 Fev 2020 14:14
por Itamar M. Lins Jr.
Ola!
Terminando de ler a thread... eis que vem o Przmek e manda isso!

Código: Selecionar todos

  FUNCTION Main(...)
      LOCAL cArg
      ? "There were ", PCOUNT(), " arguments total, as shown below:"
      FOR EACH cArg IN { ... }

         ? "Argument ", cArg:__enumIndex(), " is ", cArg
      NEXT
      ? "No more arguments."
   RETURN NIL
In Harbour ... can be used as operator, i.e.

aParams := { ... }

or:

? "All arguments:", ...

or even as array indexes, i.e.:

func ArrayGet( aValue, ... )
return aValue[ ... ]

[...]

? ArrayGet( aValue, 2, 3, 1 )

best regards,
Przemek
Saudações,
Itamar M. Lins Jr.

FUNCTION hb_SendMail( ... ) pontinhos ???

Enviado: 05 Fev 2020 15:03
por susviela@bol.com.br
Que beleza .. muito bom, cada dia melhor esse Harbour.

FUNCTION hb_SendMail( ... ) pontinhos ???

Enviado: 05 Fev 2020 15:08
por bencz
Isso ja é algo antigo na programação
De uma olhada: https://en.wikipedia.org/wiki/Variadic_function

FUNCTION hb_SendMail( ... ) pontinhos ???

Enviado: 05 Fev 2020 23:19
por Nascimento
sim muito usado na linguagem C