Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Літерали та оператори

Цілі числа 1, числа з плаваючою комою 1.2, символи 'a', рядки "abc", логічні значення true і одиничний тип () можуть бути виражені за допомогою літералів.

Цілі числа, альтернативно, можуть бути виражені у шістнадцятковому, вісімковому або двійковому записі з використанням таких префіксів відповідно: 0x, 0o або 0b.

Підкреслення можна вставляти в числові літерали для покращення читабельності, напр. 1_000 — це те саме, що 1000, а 0.000_001 — це те саме, що 0.000001.

Rust також підтримує науковий E-запис, напр. 1e6, 7.6e-4. Відповідний тип — f64.

Нам потрібно повідомити компілятору тип літералів, які ми використовуємо. Поки що ми будемо використовувати суфікс u32, щоб позначити, що літерал — це беззнакове 32-бітне ціле число, і суфікс i32, щоб позначити, що це знакове 32-бітне ціле число.

Доступні оператори та їхня пріоритетність у Rust схожі на інші мови, схожі на C.

fn main() {
    // Додавання цілих чисел
    println!("1 + 2 = {}", 1u32 + 2);

    // Віднімання цілих чисел
    println!("1 - 2 = {}", 1i32 - 2);
    // TODO ^ Спробуйте змінити `1i32` на `1u32`, щоб побачити, чому тип важливий

    // Науковий запис
    println!("1e4 is {}, -2.5e-3 is {}", 1e4, -2.5e-3);

    // Булева логіка з коротким замиканням
    println!("true AND false is {}", true && false);
    println!("true OR false is {}", true || false);
    println!("NOT true is {}", !true);

    // Побітові операції
    println!("0011 AND 0101 is {:04b}", 0b0011u32 & 0b0101);
    println!("0011 OR 0101 is {:04b}", 0b0011u32 | 0b0101);
    println!("0011 XOR 0101 is {:04b}", 0b0011u32 ^ 0b0101);
    println!("1 << 5 is {}", 1u32 << 5);
    println!("0x80 >> 2 is 0x{:x}", 0x80u32 >> 2);

    // Використовуйте підкреслення, щоб покращити читабельність!
    println!("One million is written as {}", 1_000_000u32);
}