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 saudacao e 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

  1. Declaramos a função saudacao com fn saudacao(nome: &str) -> String.
  2. O parâmetro nome é do tipo &str, uma referência a string.
  3. Usamos a macro format! para construir uma nova String interpolando nome.
  4. A expressão format!(...) é a última do bloco e não tem ponto e vírgula, então seu valor é retornado implicitamente.
  5. Em main, chamamos saudacao("Rust") e imprimimos o resultado com println!.

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 -> String na assinatura: o compilador espera () e ocorre erro de tipo.
  • Colocar ; após format!: a função retornaria (), causando erro de tipo.
  • Usar println! em vez de format!: println! retorna (), não uma String.

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!