Суффиксы типов в Rust
Сразу после цифр можно дописать имя типа.
Его называют суффиксом. Имя задает
тип самого числа. Например, i64
задает тип i64:
let num = 100i64;
println!("{}", num); // выведет 100
Суффикс u32 задает число без знака:
let num = 50u32;
println!("{}", num); // выведет 50
Суффикс f32 задает узкое дробное:
let num = 3.14f32;
println!("{}", num); // выведет 3.14
Суффикс f64 задает широкое дробное:
let num = 3.14f64;
println!("{}", num); // выведет 3.14
Имя пишут так же, как тип: маленькими буквами.
Суффикс не обязателен. Тип уже написан слева, и число в него помещается:
let num: i64 = 100;
println!("{}", num); // выведет 100
Без суффикса целое имеет тип i32, если оно
в него входит и тип слева не написан:
let num = 50;
println!("{}", num); // выведет 50
Если тип слева не написан и число в i32
не входит, в конце пишут имя более широкого типа:
let num = 3000000000i64;
println!("{}", num); // выведет 3000000000
Дробь без суффикса имеет тип f64:
let num = 3.14;
println!("{}", num); // выведет 3.14
Дан следующий код:
let num1: i64 = 10000000000;
let num2: u32 = 50;
let num3: f32 = 2.5;
println!("{}", num1);
println!("{}", num2);
println!("{}", num3);
Скажите, соберется ли этот код без суффиксов.
Какой тип у числа 50, если суффикса
после него нет и тип слева не написан?
Какой тип у числа 3.14, если суффикса
после него нет и тип слева не написан?
Какой тип у записи 50u32?
Какой тип у записи 3.14f32?
Какой тип у записи 100i64?