English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Основные типы данных в языке Rust следующие.
Целые типы данных (integer) делятся на несколько видов в зависимости от длины бит и наличия знака:
Длина битов | С знаками | Беззнаковое |
---|---|---|
8-bit | i8 | u8 |
16-bit | i16 | u16 |
32-bit | i32 | u32 |
64-bit | i64 | u64 |
128-bit | i128 | u128 |
arch | isize | usize |
Типы данных isize и usize используются для измерения размера данных, длина битов этих целых чисел зависит от целевой платформы, на которой они работают, и на 32-битных архитектурах процессоров используется 32-битная длина чисел.
Есть несколько способов выражения целых чисел:
Система счисления | Пример |
---|---|
Десятичный | 98_222 |
Шестнадцатеричный | 0xff |
Октальный | 0o77 |
Двоичный | 0b1111_0000 |
Байт (может представлять только u8) | b'A' |
Конечно, в некоторых целых числах есть подстрока с подчеркиванием, этот дизайн позволяет людям更容易 оценить примерное значение числа при вводе большого числа.
Rust, как и другие языки, поддерживает 32-битные плавающие числа (f32) и 64-битные плавающие числа (f64). По умолчанию, 64.0 будет представлять собой 64-битное плавающее число, так как современные процессоры компьютеров имеют примерно одинаковую скорость выполнения обоих типов плавающих чисел, но 64-битные плавающие числа имеют более высокую точность.
fn main() { let x = 2.0; // f64 let y: f32 = 3.0; // f32 }
Использовать программный код для phảnотражения математических операций:
fn main() { let sum = 5 + 10; // сложение let difference = 95.5 - 4.3; // вычитание let product = 4 * 30; // умножение let quotient = 56.7 / 32.2; // деление let remainder = 43 % 5; // по модулю }
Многие операторы могут быть добавлены = для обозначения самовозращения, например:
sum += 1 эквивалентно sum = sum + 1.
Внимание:Rust не поддерживает ++ и --, так как эти операторы,出现的变量的 вокруг, могут повлиять на читаемость кода и ослабить способность разработчика осознавать изменения в переменных.
Булево значение представляется с помощью bool, значения могут быть только true или false.
Тип символа представляется с помощью char.
Тип char в Rust занимает 4 байта и представляет собой значение Unicode-скейл, что означает, что он может поддерживать символы, такие как китайские, японские и корейские символы, а также смайлики и нулевые пробельные символы, которые являются эффективными значениями char в Rust.
Интервал значений Unicode составляет от U+0000 до U+D7FF и от U+E000 до U+10FFFF (включительно). Однако, концепция "символа" не существует в Unicode, поэтому ваше представление о том, что такое "символ", может не соответствовать концепции символа в Rust. Поэтому рекомендуется использовать строки для хранения текста UTF-8 (неenglish символы должны появляться в строке尽可能 часто).
Внимание:Поскольку у китайских текстов есть два кодирования (GBK и UTF-8), использование китайских строк в программировании может привести к возникновению сбоев кодирования. Это связано с тем, что кодирование текста в исходном коде и в командной строке не совпадает, поэтому в Rust строки и символы должны использовать кодирование UTF-8,否则 компилятор будет выдавать ошибки.
Композитные типы
let tup: (i32, f64, u8) = (500, 6.4, 1); // tup.0 равно 500 // tup.1 равно 6.4 // tup.2 равно 1 let (x, y, z) = tup; // y равно 6.4
Массивы включают в себя однотипные данные, заключенные в парные скобки [ ].
let a = [1, 2, 3, 4, 5]; // a — это массив целых чисел длиной 5 let b = ["January", "February", "March"]; // b — это массив строк длиной 3 let c: [i32; 5] = [1, 2, 3, 4, 5]; // c — это массив i32 длиной 5 let d = [3; 5]; // эквивалентно let d = [3, 3, 3, 3, 3]; let first = a[0]; let second = a[1]; // доступ к массиву a[0] = 123; // ошибка: массив a не изменяем let mut a = [1, 2, 3]; a[0] = 4; // верно