Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Diferença entre tipar com "&str" e "& 'static str"

Olá, professor! Primeiramente, obrigada pelo ótimo conteúdo!

Estava olhando a documentação do Rust e fiquei com dúvida entre os tipos "&str" e "& 'static str", não consegui entender bem a diferença entre eles.

Por exemplo, qual seria a diferença entre escrever isso:

let hello_world:&str = "Hello, world!";

E escrever isso:

let hello_world:& 'static str = "Hello, world!";

Agradeço desde já!

2 respostas
solução!

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.

Ahh, entendi agora!! Muito obrigada pelo esclarecimento!!!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software