mirror of
https://github.com/rust-lang/rustlings.git
synced 2025-12-31 15:59:18 +00:00
🐛 fix bugs
This commit is contained in:
parent
1767f47bc6
commit
fa7e4f8ade
@ -10,7 +10,7 @@ fn main() {
|
|||||||
// Exercise 1: Use ok_or to convert optional_point to a Result.
|
// Exercise 1: Use ok_or to convert optional_point to a Result.
|
||||||
// If the point exists, print its coordinates.
|
// If the point exists, print its coordinates.
|
||||||
// If it doesn't, print the error message "Point does not exist".
|
// If it doesn't, print the error message "Point does not exist".
|
||||||
let result_point = optional_point.ok_or("Point does not exist");
|
let result_point = optional_point.clone().ok_or("Point does not exist");
|
||||||
match result_point {
|
match result_point {
|
||||||
Ok(p) => println!("Co-ordinates are {},{}", p.x, p.y),
|
Ok(p) => println!("Co-ordinates are {},{}", p.x, p.y),
|
||||||
Err(e) => println!("{}", e),
|
Err(e) => println!("{}", e),
|
||||||
@ -18,7 +18,7 @@ fn main() {
|
|||||||
|
|
||||||
// Exercise 2: Use ok_or_else to achieve the same functionality as above,
|
// Exercise 2: Use ok_or_else to achieve the same functionality as above,
|
||||||
// but with a closure to generate the error message.
|
// but with a closure to generate the error message.
|
||||||
let result_point_else = optional_point.ok_or_else(|| "Point does not exist");
|
let result_point_else = optional_point.clone().ok_or_else(|| "Point does not exist");
|
||||||
match result_point_else {
|
match result_point_else {
|
||||||
Ok(p) => println!("Co-ordinates are {},{}", p.x, p.y),
|
Ok(p) => println!("Co-ordinates are {},{}", p.x, p.y),
|
||||||
Err(e) => println!("{}", e),
|
Err(e) => println!("{}", e),
|
||||||
@ -27,7 +27,7 @@ fn main() {
|
|||||||
// Exercise 3: Use and_then to chain operations on optional_point.
|
// Exercise 3: Use and_then to chain operations on optional_point.
|
||||||
// If the point exists, compute the distance from the origin and return it as an Option.
|
// If the point exists, compute the distance from the origin and return it as an Option.
|
||||||
// If it doesn't, return None.
|
// If it doesn't, return None.
|
||||||
let distance_from_origin = optional_point.and_then(|p| {
|
let distance_from_origin = optional_point.clone().and_then(|p| {
|
||||||
let distance = ((p.x.pow(2) + p.y.pow(2)) as f64).sqrt();
|
let distance = ((p.x.pow(2) + p.y.pow(2)) as f64).sqrt();
|
||||||
Some(distance)
|
Some(distance)
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user