Boa noite professor, não entendi muito bem o que quer dizer com recursivo, pode me ajudar?
Boa noite professor, não entendi muito bem o que quer dizer com recursivo, pode me ajudar?
Oi Rafael, tudo bem? O recursivo é um recurso onde a função faz um processamento em lote onde, para fazer em todos os níveos necessário, ela precisa ser ré-executada em um novo caminho.
Vamos pensar que você tem 5 pastas, uma dentro da outra:
pasta 1 > pasta 2 > pasta 3 > pasta 4 > pasta 5
O comando rm sozinho por exemplo, não pode apagar a pasta 1, por que ela não tá vazia. Considerando isso, precisaríamos ir até o nível da pasta 4, apagar a pasta 5 e voltar apagando as demais nível a nível.
Mas quando a gente faz rm -r
por exemplo. O comando rm é executado de forma recursiva, ou seja, se dentro da pasta que quero apagar, houver uma outra pasta, ele vai entrar e apagar essa pasta filha antes de tentar apagar a pasta que selecionei primeiramente.
Nesse exemplo, ele ia tentar apagar a pasta 1, ia notar que existe a pasta 2, ia notar que existe a pasta 3, ia entrar pasta a pasta até chegar na 5, ver que não tem mais níveis, ai ia voltar pra 4, apagar a 5, voltar pra 3 e apagar a 4, voltar pra 2 e apagar a 3 e assim por diante.
A mesma ideia pode ser aplicada em busca de arquivos por exemplo.
O detalhe principal é que a função deve chamar a si mesma para executar a tarefa e ter um ponto de finalização, ou seja, em qual ponto ela deve parar? Quando apagar todos os arquivos e pastas ou quando encontrar o arquivo... Etc.
Deu para entender com esse novo exemplo?