Respuestas y preguntas sobre la evaluación de habilidades de LinkedIn: Rust (Lenguaje de programación)
“Rust is a modern and innovative programming language that has gained popularity for its focus on performance, la seguridad, y concurrencia. En esta guía completa, Estamos encantados de presentar una serie de preguntas de evaluación de habilidades y respuestas diseñado específicamente para Rust usuarios.
Si es un desarrollador experimentado que busca ampliar sus capacidades o un principiante que desea comprender los conceptos básicos de este poderoso lenguaje., Este recurso está diseñado para ayudarle a adquirir competencia en Rust y sus aplicaciones. Únase a nosotros mientras exploramos los conceptos centrales de Rust programming, including ownership, borrowing, lifetimes, y más, empowering you to harness the full potential of this cutting-edge language.”
Q1. Which type cast preserves the mathematical value in all cases?
- i64 as i32
- usize as u64
- i32 as i64
- f64 as f32
What do the vertical bars represent here?
Q2.str::thread::spawn(|| {
println!("LinkedIn");
});
- a closure
- a thread
- a future
- a block
Which choice is not a scalar data type?
Tercer trimestre.- integer
- flotar
- boolean
- tuple
cannot be destructured.
Cuarto trimestre. _- Traits
- tuplas
- Enums
- estructuras
cargo
command checks a program for error without creating a binary executable?
Q5. Cual - cargo –versión
- cargo init
- cargo build
- cargo check
and related phrases such as boxing a value are often used when relating to memory layout. ¿Qué hace? caja referirse a?
Q6. El termino caja- 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.
What is an alternative way of writing slice
that produces the same result?
Q7. ...
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];
?
operator at the end of an expression is equivalent to _.
Q8. Cómo hacer que los plazos te sirvan - a match pattern that branches into True or False
- calling ok_error()
- calling panic!()
- a match pattern that may result an early return
Which is valid syntax for defining an array of i32 values?
Q9.- Formación::with_capacity(10)
- [i32]
- Formación::nuevo(10)
- [i32; 10]
What syntax is required to take a mutable reference to T, when used within a function argument?
Q10.fn increment(i: T) {
// body elided
}
- *mut T
- mut ref T
- mut &T
- &mut T
The smart pointers Rc and Arc provide reference counting. What is the API for incrementing a reference count?
tecnicos.- .agregar()
- .incr()
- .clon()
- .increment()
What happens when an error occurs that is being handled by the question mark (?) operator?
Q12.- 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.
Which comment syntax is not legal?
P13.-
/*
-
#
-
//!
-
//
In matching patterns, values are ignored with _.
Q14.-
.ignore()
-
an underscore (_)
- ..
- omitir
Defining a _ requires a lifetime parameter.
P15.- 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
Which example correctly uses std::colecciones::HashMap’s Entry API to populate counts?
Q16.use std::collections::HashMap;
fn main() {
let mut counts = HashMap::new();
let text = "LinkedIn Learning";
for c in text.chars() {
// Complete this block
}
println!("{:?}", counts);
}
-
for c in text.chars() {
if let Some(count) = &mut counts.get(&c) {
counts.insert(c, *count + 1);
} else {
counts.insert(c, 1);
};
}
-
for c in text.chars() {
let count = counts.entry(c).or_insert(0);
*count += 1;
}
-
for c in text.chars() {
let count = counts.entry(c);
*count += 1;
}
-
for c in text.chars() {
counts.entry(c).or_insert(0).map(|x| x + 1);
}
Which fragment does not incur memory allocations while writing to a “expediente” (represented by a Vec)?
P17.use std::collections::HashMap;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut v = Vec::<u8>::new();
let a = "LinkedIn";
let b = 123;
let c = '🧀';
// replace this line
println!("{:?}", v);
Ok(())
}
- :
write!(&mut v, "{}{}{}", a, b, c)?;
- :
v.write(a)?;
v.write(b)?;
v.write(c)?;
- :
v.write(a, b, c)?;
- :
v.write_all(a.as_bytes())?;
v.write_all(&b.to_string().as_bytes())?;
c.encode_utf8(&mut v);
Does the main
function compile? Si es así, por qué? Si no, what do you need to change?
P18. fn main() {
let Some(x) = some_option_value;
}
- The code does not compile.
let
statements require a refutable pattern. Añadirif
antes delet
. - The code compiles.
let
statements sometimes require a refutable pattern. - The code does not compile.
let
statements requires an irrefutable pattern. Añadirif
antes delet
. - The code compiles.
let
do not require a refutable pattern.
Which statement about lifetimes is false?
Q19.- Lifetimes were redundantly specified in previous version of Rust.
- Lifetimes are specified when a struct is holding a reference to a value.
- Lifetimes are specified when certain values must outlive others.
- Lifetimes are always inferred by the compiler.
When used as a return type, which Rust type plays a similar role to Python’s None
, JavaScript’s null
, o el void
type in C/C++?
P20. -
!
-
None
-
Null
-
()
To convert a Result
to an Option
, which method should you use?
P21. -
.as_option()
-
.ok()
-
.to_option()
-
.into()
Which statement about the Clone
y Copy
traits is false?
P22. -
Copy
is enabled for primitive, built-in types. - Without
Copy
, Rust applies move semantics to a type’s access. - When using
Clone
, copying data is explicit. - Until a type implements either
Copy
oClone
, its internal data cannot be copied.
Why does this code no compile?
Q23.fn returns_closure() -> dyn Fn(i32) -> i32 {
|x| x + 1
}
- The returned
fn
pointer and value need to be represented by another trait. - Closures are types, so they cannot be returned directly from a function.
- Closures are types and can be returned only if the concrete trait is implemented.
- Closures are represented by traits, so they cannot be a return type.
What smart pointer is used to allow multiple ownership of a value in various threads?
P24.-
Arc<T>
-
Box<T>
- Ambos
Arc<T>
yRc<T>
are multithread safe. -
Rc<T>
Which types are no allowed within an enum variant’s body?
P25.- zero-sized types
- structs
- trait objects
- floating-point numbers
Which statement about this code is true?
Q26.fn main() {
let c = 'z';
let heart_eyed_cat = '😻';
}
- Both are character literals.
-
heart_eyed_cat
is an invalid expression. -
c
is a string literal andheart_eyed_cat
is a character literal. - Both are string literals.
Your application requires a single copy of some data type T to be held in memory that can be accessed by multiple threads. What is the thread-safe wrapper type?
Q27.-
Mutex<Arc<T>>
-
Rc<Mutex<T>>
-
Arc<Mutex<T>>
-
Mutex<Rc<T>>
Which idiom can be used to concatenate the strings a
, b
, c
?
P28. let a = "a".to_string();
let b = "b".to_string();
let c = "c".to_string();
-
String::from(a,b,c)
-
format!("{}{}{}", a, b, c)
-
concat(a,b,c)
-
a + b + c
In this function. what level of access is provided to the variable a
?
Q29. use std::fmt::Debug;
fn report<T:Debug>(a: &T) {
eprintln!("info: {:?}", a);
}
- imprimir
- read-only
- read/write
- depurar
Which choice is no valid loop syntax?
Q30.-
loop
-
for
-
while
-
do
How do you construct a value of Status
that is initialized to Waiting
?
P31. enum Status {
Waiting,
Busy,
Error(String),
}
-
let s = Enum::new(Status::Waiting);
-
let s = new Status::Waiting;
-
let s = Status::Waiting;
-
let s = Status::new(Waiting);
Which statement about enums is false?
Q32.- Enums are useful in matching patterns.
- Option is an enum type.
- Enum variants can have different types with associated data.
- el término enum is short for enummap
What does an underscore (_) indicate when used as pattern?
para celebrar el éxito y resaltar las áreas de oportunidad.- It matches everything.
- It matches underscores.
- It matches any value that has a length of 1.
- It matches nothing.
What is a safe operation on a std::cell:UnsafeCell<T>
?
P34. - UNA
&mut T
reference is allowed. However it may not cpexists with any other references. and may be created only in single-threaded code. -
UnsafeCell<T>
provides thread-safety. Por lo tanto, creando&T
references from multiple threads is safe. - The only safe operation is the
.get()
método, which returns only a raw pointer. - Non.
UnsafeCell<T>
only allows code that would otherwise need unsafe blocks to be written in safe code.
Generics are useful when you _.
entonces solo habrá falla si el defecto ocurre en cada capa y estas están todas alineadas al mismo tiempo.- need to reduce code duplication by concretizing values and restricting parameters in functions
- need to reduce code duplication by abstracting values further, such as in function parameters
- need a supertrait
- are not sure if you need a specific kind of trait
How do you create a Rust project on the command-line?
Q36.- cargo new
- rustup init
- cargo start
- rust new-project
Calling.clone() _.
P37.- deeply copies heap data and clones ownership
- clones the pointer to the heap
- clones the heap data onto the stack
- deeply copies heap and stack
what is one of the roles of the let keyword?
P38.let text = String::new("LinkedIn");
- Create a text object.
- Assign a mutable value.
- request to borrow a string.
- Assign an immutable value.
How is a new enum initialized?
P39.enum Option_i32 {
Some(i32),
None,
}
- let integer = Option_i32::Algunos(5);
- let integer = Option_i32.new(Algunos(5))
- let integer = Option_i32::Nuevo::(Algunos(5))
- let integer = Option_i32.init()
What are the main difference between const and static?
Q40.- They can be used interchangeably, but const only supports primitive types while static must be used for structs and user-defined types.
- They can be used interchangeably, but const values are compiled at compile time.
- Values defined with const live in the stack, while static values live on the heap.
- Values defined with const can be copied to wherever they are needed, whereas static values remain in a fixed place in memory.
Which Rust data type represents a signed integer that has the same width as a pointer of the compile target’s CPU?
P41.- i64
- int64
- isize
- En t
When are supertraits needed?
P42.- when a trait is needed for multiple structs
- when a trait depends on another trait
- only when a generic trait is used
- when a metatrait is needed to use another trait
Which types are legal for x to be in this snippet?
Q43.if x {
println!("ok");
}
- every type that implements the std::cmp::Truth trait
- only the primitive bool type
- both bool and u8 (which is how bool is implemented under the hood)
- bool and std::sync::atomic::AtomicBool
How do you access the married data in this struct?
Q44.struct person = Person {
height: u64,
weight: u64,
married: bool
}
- person.getMarried()
- persona[married]
- person.value(married)
- person.married
To mark a function as visible to other crates, what do you need to do to its definition?
P45.- Add the public keyword.
- Add the pub keywork.
- Begin the function’s name with a capital letter.
- Remove the private keyword.
Which choice is a compound data type?
Q46.- carbonizarse
- tuple
- bool
- i32
How could you make this function compile?
P47.fn main() {
let x = 5;
println!("The value of x is: {}", x);
x = 6;
println!("The value of x is: {}", x);
}
- Use x only once in a println!() declaración.
- Place curly brackets around let x = 5.
- Add const to let x = 6.
- Add mut to let x = 5.
Using .unwrap() will _.
Q48.- let you choose the expected panic error message
- call panic! if there is an error or absence of value
- unwrap the value inside an unsafe wrapper
- return the error inside Ok()
When should the panic! macro be called instead of using std::result::Result?
Q49.- when there is a way to encode the information in types used
- when your code is expected to end in a good state
- when the situation is considered unrecoverable
- when valid values are passed on the code
Which statement about arrays is true?
Q50.- [; size of array] can initialize arrays.
- Indexación, such as array.0, accesses elements in arrays.
- A data structure for collections can contain different types of values.
- Arrays are useful when you want to allocate data on the heap and then on the stack.
How would you select the value 2.0 from this tuple?
P51.let pt = Point2D(-1.0, 2.0)
- pt[1]
- pt(1)
- pt.iter().nth(1)
- pt.1
When writing tests, which macro should you use to assert equality between two values?
Q52.- assert_eq!()
- assert_equal!()
- is_equals!()
- afirmar!()
Which code statement in Rust is used to define a BTreeMap object?
Q53.- let btm=BTreeMap::nuevo()
- let mut btm=BTreeMap::nuevo()
- BTreeMap btm = BTreeMap.new()
- BTreeMap btm = std::colecciones::BTreeMap::nuevo()
Q54 .Rust is known to be memory safe. Which feature is the main reason for the memory safety of Rust?
- ownership
- borrowing
- lifetimes
- referencia
To support Dynamic Sized variables, what should we use in place of “f32”?
Q55 .- Not supportedin Rust
- use array
- ?sized
- list all data-types
Drop” in Rust used for?
P56 . Qué es “- run code as multi-threaded
- run code when variable is out of scope
- run code and drop it if error comes
- opción 4
In Rust, how is a macro from the above Rust code snippet used?
P57 .- foo(X)
- #foo
- foo!()
- foo
Which library does Rust use for memory allocation?
P58 .- tcmalloc
- mimalloc
- ptmalloc
- jemalloc
Who designed Rust from scratch in 2006?
Q59 .- Graydon Hoare
- Yukihiro Matsumoto
- Guido Van Rossum
- David flanagan
Which types are no allowed within an enum variant’s body?
Q60.- zero-sized types
- structs
- trait objects
- floating-point numbers
Which example correctly uses std::colecciones::HashMap’s Entry API to populate counts?
Q61.use std::collections::HashMap;
fn main() {
let mut counts = HashMap::new();
let text = "LinkedIn Learning";
for c in text.chars() {
// Complete this block
}
println!("{:?}", counts);
}
-
for c in text.chars() {
if let Some(count) = &mut counts.get(&c) {
counts.insert(c, *count + 1);
} else {
counts.insert(c, 1);
};
}
-
for c in text.chars() {
let count = counts.entry(c).or_insert(0);
*count += 1;
}
-
for c in text.chars() {
let count = counts.entry(c);
*count += 1;
}
-
for c in text.chars() {
counts.entry(c).or_insert(0).map(|x| x + 1);
}
To convert a Result
to an Option
, which method should you use?
P62. -
.as_option()
-
.ok()
-
.to_option()
-
.into()
Which statement about this code is true?
Q63.fn main() {
let c = 'z';
let heart_eyed_cat = '😻';
}
- Both are character literals.
-
heart_eyed_cat
is an invalid expression. -
c
is a string literal andheart_eyed_cat
is a character literal. - Both are string literals.
What is an alternative way of writing slice
that produces the same result?
Q64. ...
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];
How would you select the value 2.0 from this tuple?
Q65.let pt = Point2D(-1.0, 2.0)
- pt[1]
- pt(1)
- pt.iter().nth(1)
- pt.1
What is the purpose of the move keyword in Rust?
Q66.- To indicate that a value should be moved instead of copied.
- To indicate that a value should be copied instead of moved.
- To indicate that a value should be borrowed instead of owned.
- To indicate that a value should be owned instead of borrowed.
Deja una respuesta
Debes iniciar sesión o registro para agregar un nuevo comentario .