From 428d64ffa01415826e421e00f59f63a77884b923 Mon Sep 17 00:00:00 2001 From: mo8it Date: Mon, 1 Jul 2024 21:41:22 +0200 Subject: using_as solution --- solutions/23_conversions/using_as.rs | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) (limited to 'solutions/23_conversions/using_as.rs') 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::(); + 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); + } +} -- cgit v1.2.3