Em ADVPL funciona a atribuição múltipla através do retorno de uma função ? Ex: _cBanco, _cAgencia, _cConta := AFIN004BCO( ZB1->ZB1_BANCO ). A função AFIN004BCO retorna 3 valores ( return a, b, c ).
Em python seria mais ou menos isso:
def func(x, y):
return x*y, x+y
mult, soma = func(2, 3)
Acho quem em ADVPL não… nunca fiz, quando preciso retornar, coloco assim return({a,b,c})
E preencho numa variavel array, para depois passar para as variaveis.
aDados := Funcao() return({a,b,c}) var1 := aDados[1] var2 := aDados[2]
Acho quem em ADVPL não... nunca fiz, quando preciso retornar, coloco assim return({a,b,c})
E preencho numa variavel array, para depois passar para as variaveis.
aDados := Funcao() return({a,b,c}) var1 := aDados[1] var2 := aDados[2]
Sim, atualmente faço dessa forma mas acho desnecessário o uso de array. Mas como é uma limitação da linguagem, é o que temos pra hoje kkk
Também acho mas… Será que no tl++ já será possível?
Espero, além da facilidade o código fica mais limpo e de fácil entendimento…
A linguagem ADVPL não trabalha com retorno múltiplo.
Os valores retornados são atribuídos diretamente para a primeira variável que antecede o sinal de atribuição na função:
cTotal, nValor := CalculaJuros(nTitulo, nParcela, nPeriodo) // SOMENTE NVALOR RECEBERÁ O RETORNO DE CALCULAJUROS()
Recomendo que efetue a abertura de um ticket para a equipe de suporte ADVPL solicitando a implementação desta melhoria em releases futuras.
Bacana, fiz a abertura do ticket já, vamos ver se sai algo kkk.