Score %0 (0 correct0 incorrect17 unanswered)

Domanda 1. Quale tipo cast preserva il valore matematico in tutti i casi?

  • i64 come i32
  • usa come u64
  • i32 come i64
  • f64 come f32

Domanda 2. Cosa rappresentano le barre verticali qui?

"ruggine". str::thread::spawn(|| { println!("LinkedIn"); });


- %OPTION% una chiusura
- %OPTION% un filo
- %OPTION% un futuro
- %OPTION% un blocco

[riferimento](https://doc.rust-lang.org/book/ch13-01-closures.html#refactoring-with-closures-to-store-code)

Domanda 3. Quale scelta non è un tipo di dati scalare?

  • numero intero
  • galleggiante
  • booleano
  • tupla

Q4. _ non è destrutturabile.

  • Tratti
  • Tuple
  • Enumerazioni
  • Strutture

riferimento

D5. Quale comando "cargo" controlla la presenza di errori in un programma senza creare un eseguibile binario?

  • carico --versione
  • carico init
  • costruzione del carico
  • controllo del carico

Domanda 6. Il termine box e frasi correlate come boxing a value vengono spesso utilizzate quando si parla di layout della memoria. A cosa si riferisce box?

  • Sta creando un puntatore sull'heap che punta a un valore nello stack.
  • Sta creando un puntatore nello stack che punta a un valore nell'heap.
  • Sta creando una guardia della memoria attorno ai valori per impedire l'accesso illegale.
  • È un'astrazione che si riferisce alla proprietà. I valori "riquadro" sono chiaramente etichettati.

Domanda 7. Qual è un modo alternativo di scrivere "slice" che produce lo stesso risultato?

"ruggine". ... let s = String::form("ciao"); let fetta = &s[0..2];


- %OPTION% let fetta = &s[len + 2];
- %OPTION% let fetta = &s[len - 2];
- %OPTION% let slice = &s.copy(0..2);
- %OPTION% lascia fetta = &s[..2];

Domanda 8. Usare l'operatore ? alla fine di un'espressione equivale a _.

  • un modello di corrispondenza che si ramifica in Vero o Falso
  • chiamando ok_error()
  • chiamando il panico!()
  • uno schema di corrispondenza che potrebbe comportare una restituzione anticipata

Domanda 9. Qual è la sintassi valida per definire un array di valori i32?

  • Array<i32>::con_capacità(10)
  • [i32]
  • Array<i32>::new(10)
  • [i32; 10]

D10. Quale sintassi è richiesta per prendere un riferimento mutabile a T, quando utilizzato all'interno di un argomento di funzione?

"ruggine". fn incremento(i: T) { // corpo eliso }


- %OPTION% \*mut T
- %OPTION% mut rif T
- %OPTION% muto &T
- %OPTION% &mut T

Domanda11. I puntatori intelligenti Rc e Arc forniscono il conteggio dei riferimenti. Qual è l'API per incrementare un conteggio dei riferimenti?

  • .aggiungere()
  • .incr()
  • .clone()
  • .incremento()

riferimento

Domanda12. Cosa succede quando si verifica un errore gestito dall'operatore punto interrogativo (?)?

  • L'errore viene segnalato e l'esecuzione continua.
  • Viene sollevata un'eccezione. Gli effetti dell'eccezione sono definiti dall'errore! macro.
  • Il programma va immediatamente nel panico.
  • Rust tenta di convertire l'errore nel tipo di errore della funzione locale e lo restituisce come Risultato::Err. Se fallisce, il programma va nel panico.

Domanda 13. Quale sintassi dei commenti non è legale?

  • /*
  • #
  • //!
  • //

Domanda14. Nei modelli corrispondenti, i valori vengono ignorati con _.

  • .ignore()
  • un carattere di sottolineatura (_)
  • [X] ..
  • saltare

D15. La definizione di _ richiede un parametro di durata.

  • funzione che termina la durata di uno dei suoi argomenti
  • struttura che contiene un riferimento a un valore
  • funzione con un argomento generico
  • struttura che contiene un riferimento a un valore boxed

Riferimento al libro Rust

Domanda 16. Quale esempio utilizza correttamente l'API Entry di std::collections::HashMap per popolare i conteggi?

"ruggine". usa std::collections::HashMap; fn principale() { lascia che mut conti = HashMap::new(); let text = "LinkedIn Learning"; per c in text.chars() { // Completa questo blocco } println!("{:?}", conta); }


- %OPTION% &Timido;

"ruggine".
per c in text.chars() {
if let Some(count) = &mut counts.get(&c) {
conta.inserisci(c, \*conta + 1);
} altro {
conta.inserisci(c, 1);
};
}

  • &timido;

"ruggine". per c in text.chars() { let count = counts.entry(c).or_insert(0); *conta += 1; }


- %OPTION% &Timido;

"ruggine".
per c in text.chars() {
lascia contare = conta.voce(c);
\*conta += 1;
}

  • &Timido;

"ruggine". per c in text.chars() { conta.entry(c).or_insert(0).map(|x| x + 1); }


[riferimento](https://doc.rust-lang.org/std/collections/hash_map/struct.HashMap.html#method.entry)

D17. Quale frammento non comporta allocazioni di memoria durante la scrittura su un "file" (rappresentato da un Vec<u8>)?

"ruggine". usa std::collections::HashMap;

fn main() -> Risultato<(), Box<dyn std::error::Error>> { let mut v = Vec::<u8>::new();

 let a = "LinkedIn";
 sia b = 123;
 sia c = '🧀';

 // sostituisci questa riga

 println!("{:?}", v);

 OK(())

}


- [X] :

"ruggine".
scrivi!(&mut v, "{}{}{}", a, b, c)?;
  • :

"ruggine". v.scrivere(a)?; v.scrivere(b)?; v.scrivere(c)?;


- %OPTION% :

"ruggine".