Fácil Rust
Função de saudação
Enunciado
Escreva uma função saudacao(nome: &str) -> String que retorne uma string no formato "Olá, {nome}!". Use retorno implícito.
Requisitos
- A função deve se chamar
saudacaoe receber um&str. - Deve retornar uma
String. - O retorno deve ser implícito (sem
return). - A saída deve ser exatamente
Olá, Rust!quando chamada com"Rust".
Código inicial
fn saudacao(nome: &str) -> String {
// escreva seu código aqui
}
fn main() {
println!("{}", saudacao("Rust"));
}
Saída esperada
Olá, Rust!
Ver dica
Use format! para criar a string e não coloque ponto e vírgula na última linha.
Mostrar solução
fn saudacao(nome: &str) -> String {
format!("Olá, {}!", nome) // expressão de retorno implícito
}
fn main() {
println!("{}", saudacao("Rust"));
}
Passo a passo
- Declaramos a função
saudacaocomfn saudacao(nome: &str) -> String. - O parâmetro
nomeé do tipo&str, uma referência a string. - Usamos a macro
format!para construir uma novaStringinterpolandonome. - A expressão
format!(...)é a última do bloco e não tem ponto e vírgula, então seu valor é retornado implicitamente. - Em
main, chamamossaudacao("Rust")e imprimimos o resultado comprintln!.
Por que funciona
Em Rust, o corpo de uma função é uma expressão. A última expressão do bloco, se não terminada por ;, torna-se o valor de retorno. Aqui, format! produz uma String que é retornada sem precisar da palavra-chave return.
Erros comuns
- Esquecer o
-> Stringna assinatura: o compilador espera()e ocorre erro de tipo. - Colocar
;apósformat!: a função retornaria(), causando erro de tipo. - Usar
println!em vez deformat!:println!retorna(), não umaString.
Outra forma de resolver
Usar return explícito:
fn saudacao(nome: &str) -> String {
return format!("Olá, {}!", nome);
}
Prefira o retorno implícito para código mais idiomático.
Saída esperada
Olá, Rust!