Pular para conteúdo

Quiz 04 - Introdução

1. **Qual palavra-chave é usada para declarar uma função em Rust?**
`function`
`def`
`fn`
`func` > **Explicação**: `fn` é a abreviação padrão usada pelo Rust.
2. **O padrão de nomenclatura recomendado para funções em Rust é:**
camelCase
PascalCase
snake_case
kebab-case > **Explicação**: Rust segue o padrão de letras minúsculas separadas por sublinhados.
3. **Diferente de variáveis, em funções os tipos de parâmetros:**
São opcionais
São obrigatórios
São inferidos automaticamente
Só são necessários se a função for pública > **Explicação**: O Rust exige anotações de tipo explícitas nos parâmetros das funções.
4. **Como indicamos o tipo de retorno de uma função?**
`return i32`
`: i32`
`-> i32`
`=> i32` > **Explicação**: A seta `->` precede o tipo de dado retornado.
5. **O que diferencia uma expressão de uma instrução em Rust?**
Expressões terminam em ponto e vírgula
Expressões retornam um valor, instruções não
Instruções são usadas apenas dentro de loops
Não há diferença técnica > **Explicação**: Quase tudo no Rust é uma expressão que avalia para um valor.
6. **Como funciona o "retorno implícito" no final de uma função?**
Usamos a macro `yield!`
Deixamos a última expressão sem ponto e vírgula
O Rust retorna a última variável declarada
Não existe retorno implícito no Rust > **Explicação**: A ausência do `;` na última linha indica que aquele valor deve ser retornado.
7. **Qual palavra-chave torna um item (módulo ou função) visível para outros módulos?**
`open`
`visible`
`pub`
`export` > **Explicação**: `pub` (public) controla a visibilidade no sistema de módulos.
8. **Como declaramos a existência de um módulo que está em outro arquivo (`util.rs`)?**
`mod util;`
`use util;`
`import util;`
`include util.rs;` > **Explicação**: `mod` diz ao compilador para procurar e compilar o arquivo do módulo.
9. **Para que serve a palavra-chave `use`?**
Para criar um novo módulo
Para trazer nomes de caminhos de módulos para o escopo atual
Para apagar uma variável
Para iniciar o compilador > **Explicação**: `use` facilita o acesso a itens sem precisar digitar o caminho completo.
10. **Uma função que não retorna nenhum valor tecnicamente retorna:**
`void`
`null`
O tipo unitário `()`
`0` > **Explicação**: `()` é uma tupla vazia que representa a ausência de um valor significativo.