Open Source Your Knowledge, Become a Contributor
Technology knowledge has to be shared and made accessible for free. Join the movement.
This article was originally published on Medium
Follow me:
Arithmetic Operators
| Meaning | Python | Rust | Rust Overloading Trait |
|---|---|---|---|
| Add two numbers | + | + | std::ops::Add |
| Subtract right operand from the left | - | - | std::ops::Sub |
| Multiply two numbers | * | * | std::ops::Mul |
| Divide left operand by the right one | / | / | std::ops::Div |
| Modulus/Remainder | % | % | std::ops::Rem |
Python and Rust share the same symbols as you see in the above table. Rust calls % as Remainder instead of the Modulus.
We will cover “Rust Overloading Trait” later in the Operator Overloading.
In Rust you can't use different data types in an operation. For example, if you try to subtract an unsigned integer from a singed integer, it will fail:
Rust uses the as keyword to cast between primitive types. Please read more about the cast in Rust here.
Exponent
Python uses ** symbol for exponents:
Rust uses pow, powi, and powf depends on the type:
In Rust, you can annotate a number type like 2u8 or 2_u8. u8 is an unsigned 8-bit integer type and i32 is a signed integer type.
i32 and f32 have a group of built-in methods. All the integer types u8, u16, u32, u64, u128, i16,i32, i64 , i128, isize, and usize have the pow method.
pub fn pow(self, exp: u32) -> i32
The above definition tells you that using the pow method raises self to the power of exp (which is u32) and returns i32 (a signed integer).
The floating-point types, f32 and f64 have powi and powf methods.
powi raises a number to an integer power and powf raises a number to a floating-point power.
pub fn powi(self, n: i32) -> f32
pub fn powf(self, n: f32) -> f32
Floor division
In Python we use // to find a floor division. For example 5//2=2.
Rust's floating-point types has the floor method.