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 /solutions/23_conversions | |
| parent | 09c94bef2dbaf44daf81d8f618289c9425d1f90f (diff) | |
using_as solution
Diffstat (limited to 'solutions/23_conversions')
| -rw-r--r-- | solutions/23_conversions/using_as.rs | 25 |
1 files changed, 24 insertions, 1 deletions
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); + } +} |
