Перейти к основному содержанию

17. Приведение типов

Приведение типов – это преобразование типа данных переменной в какой-либо другой тип данных. В Rust приведение типов выполняется с помощью ключевого слова as, за которым следует желаемый тип данных переменной или значения. Существуют определенные правила и ограничения по приведению типов данных.

Приведение числовых типов данных

К примеру, приведем значение переменной типа i32 к типу f64:

fn main() {
    let a: i32 = 15;
    let b: f64 = (a as f64) / 2.4_f64;
    println!("a: {}", a);
    println!("b: {}", b);
}
Результат: a: 15 b: 6.25

В примере переменная a имеет тип integer 32 бита, и её значение требуется поделить на дробное число. Для совершения операции, мы должны привести все элементы выражения к единому типу.

Преобразование фиксированной строки в объект строки (&str -> String)

Это вы уже изучили, но повторим. Фиксированную строку можно преобразовать в Строку несколькими способами, например:

fn main() {
	let my_str:&str = "Некий текст";
	let my_string1: String = String::from(my_str);
	let my_string2:String =my_str.to_string();
	println!("{}", my_string1);
	println!("{}", my_string2);
}
Результат: Некий текст Некий текст

Преобразование объекта строки в фиксированную строку в  (String -> &str )

fn main() {
	let my_string: String = String::from("Некий текст");
	let my_str:&str = my_string.as_str();
	println!("{}", my_str);
}
Результат: Некий текст

Получение символа из целого беззнакового числа

Это преобразование возможно только для чисел u8, с помощью которых можно получить символы utf-8, т.е. английские буквы, цифры и знаки препинания.

fn main() {
	let mut character: char;
	let mut num:u8 = 0;
	for _ in 0..255 {
		num += 1;
		character = num as char;
		println!("Число {} в символ {}", num, character );
	}
}

Невозможные приведения типов

Нельзя преобразовать символ в строку

fn main() {
	let a: char = 'r' ;
	let b = a as &str ;
}
Ошибка: 3 | let b = a as &str ; | ^^^^^^^^^ an `as` expression can only be used ...

Для просмотра заданий и решений, а также публикации своих решений необходимо зарегистрироваться на сайте.

Всё бесплатно, мы просто хотим с вами познакомиться и понять насколько актуально то, что мы делаем.

© Клют И. А., 2022. Копирование контента возможно только с письменного разрешения автора.