1.9 KiB
1.9 KiB
Variables
Binding and mutablity
π fix the error below with least change
fn main() {
let x: i32; // uninitialized but using, ERROR !
let y: i32; // uninitialized but also unusing, only warning
println!("{} is equal to 5", x);
}
ππ fill the blanks in code to make it compile
fn main() {
// replace __ with a variable name
let __ = 1;
__ += 2;
println!("{} is equal to 3", x);
}
Scope
π fix the error below with least change
fn main() {
let x: i32 = 10;
{
let y: i32 = 5;
println!("The value of x is {} and value of y is {}", x, y);
}
println!("The value of x is {} and value of y is {}", x, y);
}
ππ fix the error with the knowledge you grasped
fn main() {
println!("{}, world", x);
}
fn define_x() {
let x = "hello";
}
Shadowing
ππ only change assert_eq!
to make the println!
work(print 42
in terminal)
fn main() {
let x: i32 = 5;
{
let x = 12;
assert_eq!(x, 5);
}
assert_eq!(x, 12);
let x = 42;
println!("{}", x); // Prints "42".
}
ππ remove a line in code to make it compile
fn main() {
let mut x: i32 = 1;
x = 7;
// shadowing and re-binding
let x = x;
x += 3;
let y = 4;
// shadowing
let y = "I can also be bound to text!";
}
Unused varibles
fix the warning below with :
- π one way
- ππ two ways
Note: there are two ways you can use, but none of them is removing the line
let x = 1
fn main() {
let x = 1;
}
// warning: unused variable: `x`
Destructing
ππ fix the error below with least change
Tips: you can use Shadowing or Mutability
fn main() {
let (x, y) = (1, 2);
x += 2;
assert_eq!(x, 3);
assert_eq!(y, 2);
}