mirror of https://github.com/01-edu/public.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1.7 KiB
1.7 KiB
question_mark
Instructions
3 structure have to be created:
One
:- which contains one element called
first_layer
which should be anOption
of the structureTwo
.
- which contains one element called
Two
:- which contains one element called
second_layer
which should be anOption
of the structureThree
.
- which contains one element called
Three
:- which contains one element called
third_layer
which should be anOption
of the structureFour
.
- which contains one element called
Four
:- which contains one element called
fourth_layer
which is anOption<u16>
.
- which contains one element called
Beside the structure you must create a function named get_fourth_layer
which is associated to the One
structure (a method).
This function should return the Option
value in the Four
structure.
Notions
Expected Function and structures
pub struct One {
// expected public fields
}
pub struct Two {
// expected public fields
}
pub struct Three {
// expected public fields
}
pub struct Four {
// expected public fields
}
impl One {
pub fn get_fourth_layer(&self) -> Option<u16> {}
}
Usage
Here is a program to test your function:
use question_mark::*;
fn main() {
let a = One {
first_layer : Some(Two {
second_layer: Some(Three {
third_layer: Some(Four {
fourth_layer: Some(1000)
})
})
})
};
// output: 1000
println!("{:?}", match a.get_fourth_layer() {
Some(e) => e,
None => 0
})
}
And its output:
student@ubuntu:~/[[ROOT]]/test$ cargo run
1000
student@ubuntu:~/[[ROOT]]/test$