Type conversions#
Rust offers a multitude of ways to convert a value of a given type into another type.
The simplest form of type conversion is a type cast expression. It is denoted with the binary operator as. For instance, println!("{}", 1 + 1.0); would not compile, since 1 is an integer while 1.0 is a float. However, println!("{}", 1 as f32 + 1.0) should compile. The exercise using_as tries to cover this.
Rust also offers traits that facilitate type conversions upon implementation. These traits can be found under the convert module.
The traits are the following:
FromandIntocovered infrom_intoTryFromandTryIntocovered intry_from_intoAsRefandAsMutcovered inas_ref_mut
Furthermore, the std::str module offers a trait called FromStr which helps with converting strings into target types via the parse method on strings. If properly implemented for a given type Person, then let p: Person = "Mark,20".parse().unwrap() should both compile and run without panicking.
These should be the main ways within the standard library to convert data into your desired types.
Further information#
These are not directly covered in the book, but the standard library has a great documentation for it.