Oi Laura, tudo bem?
Que bom que está gostando do curso!
Em Rust, "&str" é uma referência para uma string que pode ter qualquer tempo de vida. Isso significa que a string referenciada pode ser alterada ou destruída durante a execução do programa. Por exemplo, se você tiver uma função que retorna uma string, você pode usar "&str" para referenciar essa string e passá-la para outras funções.
Por outro lado, "& 'static str" é uma referência para uma string que tem tempo de vida estático. Isso significa que a string referenciada é armazenada na seção de dados do programa e permanecerá válida durante toda a execução. Geralmente, "& 'static str" é usado para strings literais que são definidas diretamente no código.
A diferença prática entre os dois exemplos que você postou está na flexibilidade versus restrição quanto ao tempo de vida da string. Use &str quando a flexibilidade for necessária e &'static str quando você puder garantir que a string será estática e estará disponível durante toda a execução do programa.
Espero que isso tenha ficado claro para você.
Um abraço e bons estudos.