Olá, Erick! Tudo bem?
Pelo que entendi, você está buscando uma forma alternativa de implementar a função informacoesDaFruta
em Dart, que atualmente está estruturada de forma não recursiva. Considerando que você está estudando funções recursivas, vamos pensar em como poderíamos aplicar esse conceito ao seu problema.
A função que você tem não é naturalmente propícia para recursão, pois ela basicamente calcula e retorna uma string com informações sobre a fruta. A recursão é mais útil em cenários onde a função precisa repetir um cálculo ou decompor um problema em partes menores, como na busca ou ordenação de dados, cálculos de fatorial, Fibonacci, entre outros.
Mas, para fins de exercício e para entender melhor a aplicação de recursão, podemos criar um cenário hipotético onde sua função poderia se beneficiar de recursão. Por exemplo, se quiséssemos calcular o peso acumulado de várias frutas ao longo de dias até que todas estejam maduras, poderíamos fazer algo assim:
void main() {
List<Map<String, dynamic>> frutas = [
{'nome': 'Maçã', 'peso': 35.52, 'diasDesdeColheita': 30, 'diasParaMadura': 20},
{'nome': 'Banana', 'peso': 20.00, 'diasDesdeColheita': 10, 'diasParaMadura': 5},
// Adicione mais frutas se necessário
];
double pesoTotal = calcularPesoTotal(frutas, 0);
print("Peso total das frutas maduras: $pesoTotal gramas");
}
double calcularPesoTotal(List<Map<String, dynamic>> frutas, int index) {
if (index >= frutas.length) {
return 0;
}
double pesoAtual = 0;
if (frutas[index]['diasDesdeColheita'] >= frutas[index]['diasParaMadura']) {
pesoAtual = frutas[index]['peso'];
}
return pesoAtual + calcularPesoTotal(frutas, index + 1);
}
Neste exemplo, usamos uma função recursiva calcularPesoTotal
para iterar sobre uma lista de frutas e somar o peso das que estão maduras. A recursão ocorre ao chamar a mesma função com o próximo índice da lista até que todos os elementos sejam verificados.
Espero que esse exemplo te ajude a entender como você poderia aplicar recursão em diferentes contextos, mesmo que o problema original não seja o candidato mais óbvio para esse tipo de abordagem.
Um abraço e bons estudos.