Друкарня від WE.UA

Типи даних в Rust (part 1)

Rust - це мова програмування з строгою типізацією, фокусом на безпечній роботі з пам'яттю, що робить її дуже продуктивною та безпечною. Одним із ключових аспектів при розробці програм на Rust є типи даних. У цій статті ми розглянемо основні типи даних в Rust, як вони використовуються, та деякі особливості, що варто враховувати при їх використанні.

Скалярні типи

У Rust є чотири скалярні типи:
-Ціле число
-Число з рухомою комою
-Булевий тип
-Символьний тип

Ви можете впізнати їх з інших мов програмування.

Цілі типи

Ціле - це число без дробової частини. Таблиці нижче, показують вбудовані цілі типи в Rust. Ми можемо скористатися будь-яким з них для оголошення типу цілого числа.

i - integer, u - unsigned integer
8, 16, 32, 64 - вказує на розмір в бітах
usize та isize — залежить від архітектури системи, тобто вони будуть 32-bit або 64-bit. (Якщо не можете визначити, який розмір типу вам потрібен, то ці типи можуть бути корисними)

Цілі беззнакові:

Тип

Беззнаковий мінімум

Беззнаковий максимум

u8

0

255

u16

0

65,535

u32

0

4,294,967,295

u64

0

18,446,744,073,709,551,615

usize

0 (залежить від архітектури системи)

18,446,744,073,709,551,615

(залежить від архітектури системи)

Цілі знакові:

Тип

Знаковий мінімум

Знаковий максимум

i8

-128

127

i16

-32,768

32,767

i32

-2,147,483,648

2,147,483,647

i64

-9,223,372,036,854,775,808

9,223,372,036,854,775,807

isize

-9,223,372,036,854,775,808

(залежить від архітектури системи)

-9,223,372,036,854,775,807

(залежить від архітектури системи)

В цих двох табличках відсутній цілий тип даних i128 та u128 тому, що він має великий діапазон значень і використовується дуже рідко, але прикріплю для повного ознайомлення.
i128 — -170,141,183,460,469,231,731,687,303,715,884,105,728 до 170,141,183,460,469,231,731,687,303,715,884,105,727
u128 — 0 до 340,282,366,920,938,463,463,374,607,431,768,211,455

Як же зрозуміти, який тип цілого використати?

Якщо ви непевні, цілий тип за замовчуванням в Rust - i32, але варто використовувати типи залежно від конкретних потреб вашого коду та зберігати відповідність типів з максимальними розмірами та потребами пам'яті.

Важливо зазначити, що використання правильного типу може мати велике значення для ефективності програми, зокрема, для швидкодії та економії пам'яті. Тому, вибір типу повинен бути обґрунтований і залежати від потреб програми.

Числа з рухомою комою

Також відомі як дробові числа — це числа, які мають дробову частину, що дозволяє представляти дробові значення. Дробова частина зазвичай записується після десяткової крапки або коми.

У Rust для представлення чисел з рухомою комою використовуються типи даних f32 і f64.

f - float
f32 — забезпечує приблизну точність з 7-8 значущими цифрами після коми.
f64 — забезпечує вищу точність з 15-16 значущими цифрами після коми.

За допомогою цього коду, можемо дізнатись максимальне та мінімальне значення:

fn main() {
  let float_32_bit_min_value = std::f32::MIN;
  println!("The minimal value of f32 is: {}", float_32_bit_min_value);

  let float_32_bit_max_value = std::f32::MAX;
  println!("The maximal value of f32 is: {}", float_32_bit_max_value);
  
  let float_64_bit_min_value = std::f64::MIN;
  println!("The minimal value of f64 is: {}", float_64_bit_min_value);
  
  let float_64_bit_max_value = std::f64::MAX;
  println!("The maximal value of f64 is: {}", float_64_bit_max_value);
}

Output:
  The minimal value of f32 is: -340282350000000000000000000000000000000
  The maximal value of f32 is: 340282350000000000000000000000000000000
  The minimal value of f64 is: -179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
  The maximal value of f64 is: 179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Булевий тип

Як і в більшості інших мов програмування, булевий тип у Rust має два можливі значення: true (істина) та false (неправда), позначається bool. Тип даних, який представляє логічні значення.

Булівський тип займає 1 байт.

fn main() {
  let t: bool = true;
  let f: bool = false;
}

Символьний тип

Символьний тип даних, використовується для зберігання одного символу.Символьний тип даних має розмір 4 байти, або 32 біти, а не 1 байт, як зазвичай буває в інших мовах програмування, позначається char.

fn main() {
  let heart_eyed_cat: char = '😻';
}

У більшості мов програмування символи кодуються за допомогою таблиці символів ASCII або Unicode, які надають числові значення для кожного символу. Символом може бути будь-який символ з таблиці символів ASCII або Unicode, такий як букви, цифри, знаки пунктуації, символи пробілу, спеціальні символи тощо.

Чому символьний тип займає 32 бітів а не 16 бітів?

Це пов'язано з тим, що Rust використовує модифікований варіант Unicode під назвою UTF-8. У UTF-8 кожен символ кодується послідовністю з одного або декількох байтів, кількість байтів залежить від величини коду символу. Оскільки в UTF-8 кожен символ може займати від 1 до 4 байтів, то в Rust для зберігання символів використовується 32-бітний тип char, щоб була можливість зберігати будь-який символ Unicode.

Висновок

Важливо пам'ятати, що в Rust типи даних мають строгу типізацію, що дозволяє програмістам створювати безпечний та ефективний код, що забезпечує високу продуктивність та безпеку виконання. Навчитися працювати з типами даних в Rust - це важлива частина вивчення мови та допоможе створювати більш ефективний та безпечний код.

Статті про вітчизняний бізнес та цікавих людей:

  • Вітаємо з Різдвом Христовим!

    Друкарня та платформа WE.UA вітають всіх наших читачів та авторів зі світлим святом Різдва! Зичимо всім українцям довгожданого миру, міцного здоровʼя, злагоди, родинного затишку та втілення всього доброго і прекрасного, чого вам побажали колядники!

    Теми цього довгочиту:

    Різдво
  • Каблучки – прикраси, які варто купувати

    Ювелірні вироби – це не тільки спосіб витратити гроші, але і зробити вигідні інвестиції. Бо вартість ювелірних виробів з кожним роком тільки зростає. Тому купуючи стильні прикраси, ви вигідно вкладаєте кошти.

    Теми цього довгочиту:

    Як Вибрати Каблучку
  • П'ять помилок у виборі домашнього текстилю, які псують комфорт сну

    Навіть ідеальний матрац не компенсує дискомфорт, якщо текстиль підібрано неправильно. Постільна білизна безпосередньо впливає на терморегуляцію, стан шкіри та глибину сну. Більшість проблем виникає не через низьку якість виробів, а через вибір матеріалів та подальшу експлуатацію

    Теми цього довгочиту:

    Домашній Текстиль
  • Як знайти житло в Києві

    Переїжджаєте до Києва і шукаєте житло? Дізнайтеся, як орендувати чи купити квартиру, перевірити власника та знайти варіанти, про які зазвичай не говорять.

    Теми цього довгочиту:

    Агентство Нерухомості
  • Як заохотити дитину до читання?

    Як залучити до читання сучасну молодь - поради та факти. Користь читання для дітей - основні переваги. Розвиток дітей - це наше майбутнє.

    Теми цього довгочиту:

    Читання
Поділись своїми ідеями в новій публікації.
Ми чекаємо саме на твій довгочит!
Denys Skobalo
Denys Skobalo@deuxnids

351Прочитань
3Автори
14Читачі
На Друкарні з 16 квітня

Більше від автора

  • Про мій шлях в програмуванні

    Завжди мав інтерес до комп'ютерів ще з дитинства. В 2018 році я дізнався що таке програмування, і я вирішую розпочати свій шлях.

    Теми цього довгочиту:

    Програмування

Це також може зацікавити:

  • Створення Mash Script: виклики у розробці інтерпретатора

    Mash Script - це динамічно типізована мова програмування, інтерпретатор якої написаний на мові Python. Вона має можливість "псевдо-компіляції", що дозволяє упаковувати програму з інтерпретатором у .exe файли.

    Теми цього довгочиту:

    Програмування
  • Какая разніца, або чи можна людям по голові постукати

    Всі ніби такі розумні, совісні, патріоти, особливо з початку війни, радіють українізації. А от якісь умовні Кіріл і Нікіта, нехай буде так, мусять тепер страждати. Що ж це твориться, не дозволяють "на нормальном язикє балакать"? Аби тільки цілою залишитись, після підняття теми 😅

    Теми цього довгочиту:

    Мова

Коментарі (0)

Підтримайте автора першим.
Напишіть коментар!

Це також може зацікавити:

  • Створення Mash Script: виклики у розробці інтерпретатора

    Mash Script - це динамічно типізована мова програмування, інтерпретатор якої написаний на мові Python. Вона має можливість "псевдо-компіляції", що дозволяє упаковувати програму з інтерпретатором у .exe файли.

    Теми цього довгочиту:

    Програмування
  • Какая разніца, або чи можна людям по голові постукати

    Всі ніби такі розумні, совісні, патріоти, особливо з початку війни, радіють українізації. А от якісь умовні Кіріл і Нікіта, нехай буде так, мусять тепер страждати. Що ж це твориться, не дозволяють "на нормальном язикє балакать"? Аби тільки цілою залишитись, після підняття теми 😅

    Теми цього довгочиту:

    Мова