Перейти к содержимому

IncluderWorld

  • записей
    11
  • комментариев
    60
  • просмотров
    30 645

Ржавеем по полному! #2. Переменные. Литералы и операторы.

LeshaInc

1 838 просмотров

XK893iv.pngRust


Сегодня как я и говорил познакомимся с переменными и типами данных. Ну и еще по мелочи: операторы и литералы =)

 


Учимся считать (переменные)
Для создания переменной в расте используется ключевое слово let.

let a = 10;   // тип i32


Таким образом будет создана переменная a с типом i32 (подробнее о типах позже). Тип выведен автоматически.
Например, если вместо числа 10 мы напишем строку, то тип будет выведен строковый.

let a = "hello!";   // тип &str. да-да, вы угадали                    // будем говорить о нем позже =)


Мы можем также сами указать тип через символ двоеточия :

let a: char = "hello";   // ошибка, "hello" это не charlet b: u8 = 99;          // ок, b теперь типа u8.


Как видите компилятор проверяет типы.

 


Теперь попробуем изменить нашу переменную.

let a = 10;a = 20;    // ошибкаa += 1;    // ошибка


... И у нас ничего не выходит! Дело в том что по умолчанию переменные непеременные (но они не константы!) . Если мы хотим что бы наши переменные изменялись нужно использовать ключевое слово mut.

let mut a = 10;//  ^--  что бы наша переменная могла изменятьсяa = 20; // окa += 1; // ок// a = 21


Хозяйке на заметку:

Константы в
расте
встраиваются прямо в исходный код программы, как если бы мы создали константу используя язык ассемблера. Переменные же (даже если они вовсе не меняются) создаются во время работы программы по умолчанию на стеке (об этом поговорим еще когда нибудь).

 


Типы данных
Раст предоставляет большой выбор примитивных типов:

  • Целые: i8, i16, i32, i64, isize (размер указателя, на 32 битных машинах 32, на 64 битных - 64).
  • Натуральные: u8, u16, u32, u64, usize (размер указателя).
  • Рациональные: f32, f64.
  • char Юникод символ, каждый 4 байта.
  • bool Буля, true или false.
  • () Юнит. (Используется как "ничего").
  • Массивы вроде [T; N]. Пример: [1, 2, 3, 4] тип: [i32; 4].
  • Кортежи вроде (A, B, ...). Пример: (true, false, 3) тип: (bool, bool, i32).


Литералы
Существуют литералы: целые числа 123, дробные числа 123.123, символы 'У', строки "RUST FOREVER!", були true, и юнит ().

 


Целые числа могут быть также представлены двоичными, шестнадцатеричными и восьмеричными используя соответственно следующие префиксы: 0b, 0x, 0o. Например: 0b101 будет равно 5.

 

В числа можно вставлять любое количество нижних подчеркиваний, дабы улучшить читаемость. 1_000_000 = 1000000, 0.000_000_1 = 0.0000001.

 

Операторы
В расте операторы похожи на операторы в Си-подобных языках.

  • + плюс.
  • - минус.
  • * умножить.
  • / разделить.
  • % остаток от деления.
  • ! логическое НЕ[/il]
  • - унарный минус.
  • ^ исключающее ИЛИ.
  • | побитовое ИЛИ.
  • & побитовое И.
  • && логическое И.
  • || логическое ИЛИ.
  • << побитовый сдвиг влево.
  • >> побитовый сдвиг вправо.


А также соединенные с присваиванием операции, например a >>= 3 равносильно a = a >> 3.

 


На этом все. В следующей части познакомимся с функциями и указателями. =)

  • Нравится 4


3 комментария


Рекомендуемые комментарии

На Скалу похож.

Разительные отличия там, принципы, которых нет ни в одном другом языке.

А пока что тут описываются просто базовые операторы.

Поделиться комментарием


Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Добавить комментарий...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...