Обновления. Тайпкастинг и константы в Leo
Всем привет! Недавно вышло обновление языка программирования Leo от компании Aleo. В ближашие 2 статьи мы поговорим о них. В данной статье мы говорим про приведение типов (тайпкастинг) и про константы, в следующей я расскажу про массивы и про кортежи.
Обновление
Для начала нужно обновить Leo до самой актуальной версии. Если Leo ещё у вас не установлен, то можете найти статьи у меня на канале по этой теме.
Открываем Git Bash и вводим команду
leo update
Тем самым мы обновим Leo до самой новой версии.
Тайпкастинг. Приведение типов.
Всю актуальную информацию по обновлению языка вы можете получить в докумнтации Aleo в разделе Language https://developer.aleo.org/leo/language.
Здесь же мы и найдем синтаксис приведения типов.
let a: u8 = 2u8; // explicit type let b: u16 = a as u16; // type casting let b: u8 = 2; // implicit type — not supported
Давайте протестируем эту функцию. Для этого создадим новый проект, вводим в git следующий текст:
leo new typecast
Теперь нам нужно перейти в эту директорию. Для этого вводим:
cd typesact
Давайте откроем наш проект в Sublime text. Для этого переходим в директорию, где создался наш проект.
И открываем файлы main.leo и typecast.in.
Теперь давайте создадим 2 переменные. Одна будет типа i8 и иметь значение -11, а вторая типа u8 и она будет иметь значение 5. Наша задача сложить две этих переменные.
Просто сложить мы их не можем. Для этого нам нужен тайпкастинг. Мы должны привести переменную h к типу i8. Для этого создадим переменную h2, которая будет иметь тип i8 и примет значение переменной h.
Осталось сложить переменные g и h2 и таким образом наша задача будет выполнена.
Запишем сумму переменных в переменную sum и изменим выходные данные на переменную типа u8.
Теперь запускаем программу, вводим:
leo run main
Как мы видим, все сработало корректно. Теперь давайте перейдем к константам.
Константы
Их описание находится ниже в документации, давайте его прочитаем.
A constant is declared asconst {name}: {type} = {expression};
.
Constants are immutable and must be assigned a value when declared.
Constants can be declared in the global program scope or in a local function scope.
Константа объявляется какconst {name}: {type} = {expression};
.
Константы являются неизменяемыми, и при объявлении им должно быть присвоено значение.
Константы могут быть объявлены в глобальной области программы или в области локальной функции.
Давайте переформулируем задачу, которую делали с тайпкастингом. Теперь сложим переменную и константу.
Алгоритм остается тот же, несмотря на то, что это константа и мы не можем ее изменять. По сути, мы создаем переменную, которая имеет такое же значение, как константа, но с другим типом. Запускаем программу и получаем:
На этом всё! В следующей статье поговорим про массивы и про кортежи.