Skip to content

Latest commit

 

History

History
128 lines (93 loc) · 3.25 KB

File metadata and controls

128 lines (93 loc) · 3.25 KB

Rust (Programming Language)

Q1. Which type cast preserves the mathematical value in all cases?

  • i64 as i32
  • usize as u64
  • i32 as i64
  • f64 as f32

Q2. What do the vertical bars represent here?

str::thread::spawn(|| {
  println!("LinkedIn");
});
  • a closure
  • a thread
  • a future
  • a block

Q3. Which choice is not a scalar data type?

  • integer
  • float
  • boolean
  • tuple

Q4. _ cannot be destructured.

  • Traits
  • Tuples
  • Enums
  • Structs

reference

Q5. Which cargo command checks a program for error without creating a binary executable?

  • cargo --version
  • cargo init
  • cargo build
  • cargo check

Q6. The term box and related phrases such as boxing a value are often used when relating to memory layout. What does box refer to?

  • It's creating a pointer on the heap that points to a value on the stack.
  • It's creating a pointer on the stack that points to a value on the heap.
  • It's creating a memory guard around values to prevent illegal access.
  • It's an abstraction that refers to ownership. "Boxed" values are clearly labelled.

Q7. What is an alternative way of writing slice that produces the same result?

...
let s = String::form("hello");
let slice = &s[0..2];
  • let slice = &s[len + 2];
  • let slice = &s[len - 2];
  • let slice = &s.copy(0..2);
  • let slice = &s[..2];

Q8. Using the ? operator at the end of an expression is equivalent to _.

  • a match pattern that branches into True or False
  • calling ok_error()
  • calling panic!()
  • a match pattern that may result an early return

Q9. Which is valid syntax for defining an array of i32 values?

  • Array::with_capacity(10)
  • [i32]
  • Array::new(10)
  • [i32; 10]

Q10. What syntax is required to take a mutable reference to T, when used within a function argument?

fn increment(i: T) {
  // body elided
}
  • *mut T
  • mut ref T
  • mut &T
  • &mut T

Q11. The smart pointers Rc and Arc provide reference counting. What is the API for incrementing a reference count?

  • .add()

  • .incr()

  • .clone()

  • .increment()

    reference

Q12. What happens when an error occurs that is being handled by the question mark (?) operator?

  • The error is reported and execution continues.
  • An exception is raised. The effect(s) of the exception are defined by the error! macro.
  • The program panics immediately.
  • Rust attempts to convert the error to the local function's error type and return it as Result::Err. If that fails, the program panics.

Q13. Which comment syntax is not legal?

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

Q14. In matching patterns, values are ignored with _.

  • .ignore()
  • an underscore (_)
  • ..
  • skip

Q15. Defining a _ requires a lifetime parameter.

  • function that ends the lifetime of one of its arguments
  • struct that contains a reference to a value
  • function with a generic argument
  • struct that contains a reference to a boxed value