Полное руководство по примитивным типам данных в Rust

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

  1. Целые типы:
    Rust предоставляет ряд целочисленных типов, включая целые числа со знаком и без знака разных размеров:
    • i8, i16, i32, i64, i128– целые числа со знаком
    • u8, u16, u32, u64, u128– целые числа без знака

Пример:

let x: i32 = 42; // signed 32-bit integer
let y: u8 = 255; // unsigned 8-bit integer

Методы:

  • wrapping_add(): добавляет два целых числа с переносом при переполнении.
  • saturating_add(): добавляет два целых числа, насыщая максимальное значение при переполнении.
  • overflowing_add(): добавляет два целых числа, возвращая кортеж с результатом и логическое значение, указывающее на переполнение.
  • checked_add(): добавляет два целых числа, возвращая Some(result), если нет переполнения, или Noneв противном случае.
  1. Типы с плавающей запятой:
    Rust поддерживает два типа с плавающей запятой:
    • f32: 32-битное число с плавающей запятой (одинарной точности).
    • f64: 64-битное число с плавающей запятой (двойной точности)

Пример:

let pi: f64 = 3.14159; // double precision floating-point number
let e: f32 = 2.71828; // single precision floating-point number

Методы:

  • ceil(): округляет число с плавающей запятой до ближайшего целого числа.
  • floor(): округляет число с плавающей запятой до ближайшего целого числа.
  • round(): округляет число с плавающей запятой до ближайшего целого числа.
  • sqrt(): вычисляет квадратный корень числа с плавающей запятой.
  1. Логический тип:
    Булевый тип в Rust представляет логические значения: trueили false.

Пример:

let is_rust_awesome: bool = true;
let is_openai_assistant: bool = false;

Методы:

  • not(): отрицает логическое значение.
  • and(): выполняет логическую операцию И между двумя логическими значениями.
  • or(): выполняет логическую операцию ИЛИ между двумя логическими значениями.
  1. Тип символа:
    Тип charв Rust представляет скалярное значение Юникода и обозначается одинарными кавычками.

Пример:

let heart_emoji: char = '❤';
let smiley_emoji: char = '????';

Методы:

  • is_alphabetic(): проверяет, является ли символ алфавитом.
  • is_numeric(): проверяет, является ли символ числовой цифрой.
  • to_lowercase(): преобразует символ в нижний регистр.
  • to_uppercase(): преобразует символ в верхний регистр.

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