diff options
| author | mo8it <mo8it@proton.me> | 2024-07-01 21:41:22 +0200 |
|---|---|---|
| committer | mo8it <mo8it@proton.me> | 2024-07-01 21:41:22 +0200 |
| commit | 428d64ffa01415826e421e00f59f63a77884b923 (patch) | |
| tree | 2c499a59a8a7eaa72d4d5a615d74ae5740525f1f | |
| parent | 09c94bef2dbaf44daf81d8f618289c9425d1f90f (diff) | |
using_as solution
| -rw-r--r-- | exercises/23_conversions/using_as.rs | 10 | ||||
| -rw-r--r-- | solutions/23_conversions/using_as.rs | 25 |
2 files changed, 28 insertions, 7 deletions
diff --git a/exercises/23_conversions/using_as.rs b/exercises/23_conversions/using_as.rs index 94b1bb3..c131d1f 100644 --- a/exercises/23_conversions/using_as.rs +++ b/exercises/23_conversions/using_as.rs @@ -1,12 +1,10 @@ -// Type casting in Rust is done via the usage of the `as` operator. Please note -// that the `as` operator is not only used when type casting. It also helps with -// renaming imports. -// -// The goal is to make sure that the division does not fail to compile and -// returns the proper type. +// Type casting in Rust is done via the usage of the `as` operator. +// Note that the `as` operator is not only used when type casting. It also helps +// with renaming imports. fn average(values: &[f64]) -> f64 { let total = values.iter().sum::<f64>(); + // TODO: Make a conversion before dividing. total / values.len() } diff --git a/solutions/23_conversions/using_as.rs b/solutions/23_conversions/using_as.rs index 4e18198..14b92eb 100644 --- a/solutions/23_conversions/using_as.rs +++ b/solutions/23_conversions/using_as.rs @@ -1 +1,24 @@ -// Solutions will be available before the stable release. Thank you for testing the beta version 🥰 +// Type casting in Rust is done via the usage of the `as` operator. +// Note that the `as` operator is not only used when type casting. It also helps +// with renaming imports. + +fn average(values: &[f64]) -> f64 { + let total = values.iter().sum::<f64>(); + total / values.len() as f64 + // ^^^^^^ +} + +fn main() { + let values = [3.5, 0.3, 13.0, 11.7]; + println!("{}", average(&values)); +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn returns_proper_type_and_value() { + assert_eq!(average(&[3.5, 0.3, 13.0, 11.7]), 7.125); + } +} |
