Числа служат для подсчета данных, только у этих типов, есть свои отличия.
1. Целочисленный со знаком i8, i16, i32, i64, isize.
Могут быть и положительными и отрицательными. (Примеры: от .. -3, -2, -1, 0, 1, ..)
2. Целочисленный без знака u8, u16, u32, u64, usize.
Для количественных, когда данные не могут быть меньше нуля. (Примеры: от 0, 1, 2, 3, 4, ..)
3. Числа с плавающей запитой f32, f64
Обязательно есть знак после запятой (Примеры: 1.0, 1.11, 1.001)
Взаимодействия через арифметические операторы
+ - / * % Все Операторы
Мы получаем результат действий оператора в переменную `result` - ту объяснения из лишний как это работает.
`%` - Остаток от деления, только целочисленные выводят либо 0 или 1. если остаток есть то 1, если нет то 0.
Взаимодействия через методы.
Продолжим арифметические операции...
я нашёл метод возведение в степень i32::pow(), Использую методы мы явно укажем тип, если не указали тип переменных. (5 в степени 2 ровно 25. т.е. 5*5.).
i32::pow(a, b); - это метод pow(), для типа i32. принимает два аргумента число которое нужно возвести в степень (self) и саму степень (exp) и получаем результат в `result`.
Во втором примере мы создаем переменную как объект a и задаем тип i32, чтобы компилятор мог сам найти методы объекта типа i32.
так как мы позиционируем переменную как изменение объекта, то запись a.pow(b). изменяем объект a методом .pow(b), тот же результат получаем в a.
в первом случае мы создаем новую переменную `result`, в во втором изменяем `a`.
Аналогично для других типов...
Список методов, которые могут пригодится, при работе с числами.
1. Возведение в степень i32::pow(), i64::pow(), f32::powf() f64::powf()
2. Квадратный корень f32::sqrt(), f64::sqrt()
`as` или преобразование числовых типов.
Нельзя использовать разные типы - это ошибка. Даже если i32 и i64. as, позволяющее очень легко преобразовывать числовые типы, но преобразовывать нужно каждую переменную. При этом следить о пределах во избежании потери данных. Eсли нужно преобразование в String то используйте метод to_string(), или макрос format!("{}", a)
например: let x = f64::sqrt(16 as f64) as i32 , я не нашёл метод для квадратного корня на i32.
Выводы
Мы поработали с числовыми данными, после чего мы можем работать с любыми арифметическими операциями, через операторы и методы.