[MELHORIA] Atribuição múltipla através do retorno de uma function

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.