Перейти к публикации
Форум - ComputerCraft
  • записей
    12
  • комментариев
    60
  • просмотра
    28 394

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

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.

 


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

  • Like 4


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


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

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

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

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

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


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

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
×