С возвращением, земляне! Я хотел бы поблагодарить BLOCK6 за поддержку моей первой статьи Что такое Solidity? Я оставлю ссылку на эту статью в конце этой статьи.

HolySharks NFT — Метавселенная. Сегодня я расскажу историю трехлетней девочки, которую научили языку программирования, и как она смогла понять типы данных. Это понимание типов данных на уровне ребенка должно помочь вам понять типы данных в твердости и на любом языке в этом отношении. Давайте войдем в Storyverse!

ГЛАВА 1: Игра в шахматы.

Это был прохладный вечер 2 июля 1964 года. У Магнуса была плохая примета насчет комнаты. Он всегда любил играть в шахматы в шахматном клубе Икороду, где у него было достаточно места для размышлений, и игроки щедро вознаграждали его за каждую выигранную партию. Здесь он сидел на двухфутовом деревянном стуле в комнате размером с подвал шахматного клуба Икороду, где играли любители. Однако было слишком поздно, Магнус больше не мог оправдываться. В этот вечер гроссмейстер был трижды подряд побежден несокрушимой силой. Бедняга Магнус всегда будет рассказывать историю этого вечера в течение следующих семи лет своей жизни… каждая деталь оставалась свежей в его голове.

«Лxe4!». Голос лениво лился из-за старой зеленой занавески. Хикару, джентльмен во французском костюме, сидевший на стуле напротив Магнуса, подобрал резную ладью, праздно сидевшую на е6, спокойно убрал слона Магнуса, стоявшего на е4, бросил слона в прямоугольную деревню. ящик, который был помещен рядом с камерой Репортеров. Внутри деревянного ящика были еще две фигуры, снятые с доски ранее во время игры французским джентльменом.

Соперником Магнуса в этом напряжённом матче был джентльмен французской внешности по имени Хикару. Хикару был более смуглым, и у него было более ухоженное лицо по сравнению с Магнусом. Хикару также был репортером этого матча, и хотя он не играл в шахматы до начала недели, здесь он завершал карьеру гроссмейстера Магнуса в четверг вечером — по крайней мере, так казалось. Сняв с доски слона Магнуса и положив его в ящик, где были два рыцаря Магнуса, он посмотрел на Магнуса с однообразным выражением лица. После этого он осторожно взял свою камеру, сфотографировал доску и вернулся к своей стандартной позе на всю игру, глядя на зеленую занавеску. Хикару был репортером, и эта игра, которую он освещал, могла быть самой важной игрой в его карьере, он не собирался позволить ничему испортить вечер, даже свиданию, которое он ранее запланировал со своей невестой Бейонсе.

Уходящий солнечный свет был единственным «лучом» надежды для Магнуса. Он внимательно посмотрел на веер, стоявший рядом с зеленой занавеской, словно три лопасти веера превратились в три шахматные фигуры, которые заменят его недостающего слона и двух коней. За занавеской была тень, силуэт, пара, комбо, дуэт, сила, настолько скрытая, что никто не мог ее увидеть. Это была тень женщины и ребенка, прижавшихся друг к другу. Это был истинный страх Магнуса, а не Хикару, который сидел перед ним. Он знал, что история запомнит, как он потерпел поражение от этой невидимой и почти нереальной тени.

Бедняга Магнус вспотел в трусах, а его усы заметно подергивались. Многое было на кону для Магнуса. Его настроение было не таким, как вчера вечером, когда он победил 6 разных мастеров, пришедших из шахматного клуба Икороду, прямо в своей гостиной, или накануне вечером, когда он получил вызов на этот матч и ему сказали, что журналисты будут освещать его победу. и распространять свою славу… далеко не так. Вот он, снова потерпевший поражение в третий раз за один вечер от чего-то неслыханного, чего-то невиданного, чего-то невозможного… Сначала он приписал свой проигрыш колдовству, потом дарвиновской генетике, но ни то, ни другое не имело значения! Его 10-летнее наследие непобедимого шахматного гроссмейстера в Лагосе вот-вот должно было быть выброшено в мусорное ведро. «Rxe4!» — снова выплюнул голос из-за занавески, на этот раз более настойчиво вырвав Магнуса из его грёз (больше похожего на кошмар… или дневной сон[если это так]). Он знал, что все кончено! Он не удосужился ответить или сделать ход на доске. Он живо посмотрел на коричневый прямоугольный портфель, который носил с собой на каждую игру, в которую играл, поднял портфель, повернулся с фальшивой улыбкой к толпе фотографов, освещавших матч у него за спиной, и поспешил из зала. Он не только вышел из комнаты, но и вышел из игры. Он оставил все. «Rxe4», и игра была окончена. Занавес победил!

ГЛАВА 2: Лиз Волшебница

Голос, который будет охотиться за ним оставшиеся 7 лет его мрачной одинокой жизни, только что прозвучал… Он сказал «Rxe4». Несколько вспышек фотографий от репортеров позади него после выхода из комнаты и неуместные папарацци, с которыми он столкнулся, ничуть не изменили его мнение. Все, что было на уме у Магнуса, — найти место, чтобы переварить то, что только что произошло, пока он ждал интерна Лиззи.

Лиззи была 24-летней любительницей шахмат и бунтаркой в ​​одной душе. В то время как многие девочки в Лагосе возраста Лиззи были ученицами портных, а более образованные из них проходили стажировку в юридических фирмах и СМИ, Лиззи решила посвятить остаток своей жизни изучению шахмат. К счастью для нее, ее дядей был Магнус, который якобы был лучшим шахматистом во всем Лагосе, где они оба жили. Магнус согласился научить Лиззи шахматам после того, как она «подкупила» его деньгами. Лиззи утверждала, что, в отличие от других стажеров, которым платили их мастера, она была готова платить Магнусу, сохраняя при этом свою лояльность и подчинение в качестве его шахматного стажера. Однако договоренность должна была быть посвящена родителям Лиззи, мистеру и миссис Карлсен, которые думали, что Лиззи была няней в доме Бэббиджей. Бэббиджи были друзьями семьи Карлсенов. Отец Лиззи (г-н Карлсен) и г-н Бэббидж оба изучали музыку в Университете Лагоса в 1930-х годах. Они оба поженились в 1935 году, и хотя Лиззи родилась у мистера Карлсена в том же году, у мистера Чарльза Бэббиджа не было детей в течение 25 лет после женитьбы. Когда 3 года назад у него наконец родился ребенок, Чарльз решил назвать ее Компи… более ленивое имя.

Лиззи взяла на себя заботу о Бэби Компи год назад после того, как бывшая няня заразила ребенка вирусом. Няня была уволена, и ее роль взяла на себя Лиззи. В то время как Лиззи любила Бэббиджей и Бэби Компи, в частности, все это меркло по сравнению с ее любовью к игре джентльменов (шахматам). Лиззи оставалась с Компи в течение дня, а по вечерам прокрадывалась в бар под названием Банилюкс, расположенный дальше по улице, чтобы встретиться с Магнусом и попрактиковаться в шахматах с завязанными глазами. Ее жизнь была прекрасной! Это должно было стать лучше.

Страдания и замешательство Магнуса, наконец, рассеялись, когда он поднял пиво и увидел приближающуюся вдалеке Лиззи. Он посмотрел на настенные часы, которые подарил бару несколько лет назад, и прочитал, что сейчас 18:30. Лиззи особенно задержалась этим вечером. Магнус опустил голову, снова обдумывая то, что произошло ранее этим вечером. Он знал, что во время этой конкретной встречи с Лиз он будет учеником, а не учителем, поскольку у него было много вопросов, на которые могла ответить только Лиззи.

'Тук-тук!',

Лиззи стукнула по столу и села напротив Магнуса. Солнце село, и, кроме них двоих, в баре была лишь горстка других людей. Это была не пятница, поэтому многие люди в ЛАГОСе не задерживались допоздна в Банилюксе.

«Я только что потерпел поражение от 2-летнего ребенка, Лиз?», Магнус сломал лед.

«Вообще-то 3», — небрежно ответила Лиззи.

Магнусу рассказали об игре против малышки Компи за неделю до этого. Он только что участвовал в турнире, где репортер-арбитр Хикару освещал вместе со своей командой репортеров. Турнир вновь признал его лучшим шахматистом района в пятый раз с тех пор, как он победил Виши Ананда 5 лет назад.

Игра, в которую играли ранее тем вечером, была организована мистером Бэббиджем, отцом Компи, чтобы показать миру потенциал своего Ребенка. Приз по линии составил 50 000 долларов США. Магнус увидел в этом прекрасную возможность заработать много денег… Я имею в виду, кто бы не стал играть в шахматы с трехлетним ребенком за 50 штук? Загвоздка, однако, заключалась в том, что средства массовой информации должны были присутствовать, чтобы освещать это событие, а малышка Компи должна была находиться за зеленой занавеской и сообщать Магнусу о своих действиях через Лиззи, ее няню и няню. Лиззи знала, почему ее выбрали на эту роль. Она могла разговаривать с младенцами!

‘Be4!’

Это был последний ход, который Магнус сделал в третьей и последней игре против дуэта Лиззи и Компи. Он должен был делать свои ходы под пристальным взглядом Хикару, репортера, который затем громко объявлял ход, чтобы все в комнате могли слышать, включая других репортеров в комнате, мистера Бэббиджа, который был в дверях, и Лиззи и Компи за занавеской. . За зелеными занавесками Лиззи сообщила малышке Компи о движении, сделанном Магнусом, с помощью разработанной ею символической записи, и высокий голос Лиззи эхом отозвался в аудитории за занавеской, что Компи ответила Лиззи. Хикару была поставлена ​​монотонная задача делать ходы для Baby Compy на шахматной доске.

Остаток вечера Лиззи провела, объясняя Магнусу, как она обнаружила и развила необычайную способность общаться с 3-летним Малышом Компи с помощью системной стенографии и как эта запись (язык) использовалась для победы над Магнусом ранее тем вечером. . Поскольку Компи была еще ребенком, она не понимала ни английский, ни какой-либо другой формальный язык. Единственным языком, который понимал Компи, была математика, передаваемая специальной стенографией, которую Лиззи разработала для общения с ней. Компи никоим образом не был обычным ребенком. Она провела 15 месяцев в инкубации, прежде чем наконец родилась. Компи понимал алгебру, исчисление, линейную регрессию, экспоненциальные логарифмы, статистическое моделирование и шахматы! Она могла решить за считанные минуты то, на что у профессоров уходило несколько недель и месяцев. Она помнила каждую деталь в течение нескольких месяцев после того, как это произошло, она была как современный компьютер для любого, кто знал, как с ней общаться. Волшебница Лиз спешит на помощь!

ГЛАВА 3: ИНТЕРВЬЮ-ТИПЫ ДАННЫХ

Прошло 6 месяцев после страшного поражения гроссмейстера Магнуса. В интервью NTA news Лиззи пришлось дотошно рассказать о том, что произошло накануне в ратуше на национальной олимпиаде. Малышка Компи сидела рядом с ней в удобном мягком зеленом кресле. Два репортера сидели за круглым столом перед Лиззи и Компи. Одного звали Хикару, другого — Нана, нового сотрудника NTA.

«Что случилось вчера с вашим звездным ребенком?» — спросила Лиззи Нана, другой репортер.

— Вчера была шестая попытка Компи доказать, что то, что произошло с Магнусом, не было уловкой — откровенно говоря, это была бы последняя, ​​— добавил Хикару.

С тех пор, как шесть месяцев назад игра Magnus-Compy была закрыта, несколько организаций и репортеров запланировали интервью с Compy и Lizzy, которую печально называли «программистом» Compy. Однако не все было так хорошо для Baby Compy.

В одном интервью Компи решила одновременное полиномиальное уравнение, включающее логарифмическую и тригонометрическую функции, за считанные секунды, а в другом она не могла дать ответы на такие простые вопросы, как 4+4. Некоторые постулировали, что все это было фасадом, в то время как другие хотели пригвоздить Лиззи к ее попытке лжи. Лиззи должна была доказать, что все они неправы… она и звездный ребенок, конечно.

Однако вчера Компи стерла все вопросы, заданные ей профессорами математики Лагосского университета. всему миру было ясно, что она гений!

«В этой книге лежит ответ!»

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

«С тех пор, как я открыл для себя дар Бэби Компи, я пытался создать язык для общения с ней и заставить ее понимать сложные конструкции. Проблемой языка, который я создал, была двусмысленность, — продолжила Лиззи.

— Что ты имеешь в виду под двусмысленностью? — спросила Нана.

Лиззи продолжала говорить ровным тоном, как будто вопрос Наны был неуместен.

«Видите ли, я заметил, что Compy специально разработан для понимания математики, а не английского языка».

«Моя основная работа — донести до нее математику, которую она понимает, используя английский язык, которого она не понимает».

— Можешь привести пример? — спросил Хикару, наклонившись вперед в своем кресле.

«Если я хочу научить Compy чему-то простому, например, 4+4=8, Compy автоматически добавит 4+4 и интерпретирует то, что я пишу, как 8=8. Это было не совсем то, чего я пытался добиться».

«Или, например, я сказал Компи найти бревно 7 по основанию 10. Она не была уверена, когда бревно означает математический логарифм или бревно из дерева. Еще одна проблема, с которой она столкнулась, заключалась в представлении чисел».

«Представление чисел? Я думал, ты сказал, что математика была ее языком по умолчанию… — возразил Хикару.

'Ну да! Математика действительно ее язык по умолчанию, — Лиззи оборвала Хикару защищающимся тоном, прежде чем он успел закончить предложение.

«Однако мне пришлось научить ее отличать римские цифры от арабских. Например, как мне сказать ей, что DIV не 504 или A не 10 в базе 16? Все это были вопросы, которые я должен был продумать, чтобы устранить двусмысленность».

«Проблема скалярного произведения также выделялась. Скажем, например, X*Y записывается как XY в алгебре, бедная девочка тоже думала, что 12 означает 1*2, и иногда интерпретировала 12 как 2».

'Ух ты! О многих вещах я никогда не задумывался», — возразил стоявший рядом оператор, мистер Рон.

— Так как же ты все это разгадала? — спросила Нана, которая некоторое время молчала, теперь Лиз Волшебницу.

«Ну, мне пришлось дать каждому данным обозначение типа, которое могла распознать Compy. Все они написаны в этой книге. С помощью этой книги любой сможет поговорить с Компи на придуманном мной языке», — с гордостью заметила Лиззи.

«Можете ли вы привести несколько примеров того, как вы создали нотацию типа данных и как она устраняет неоднозначность?» — спросил г-н Рон.

«Рассмотрите пример, который я привел ранее, об обучении Compy тому, что 4 + 4 = 8. Я бы не хотел, чтобы она добавила «4 + 4», а восприняла это как предложение… Я называю такие типы данных «строка».

— Струны? — с любопытством вставила Нана.

— Да, Стрингс. Скорее, как сказать ей, что к этому приложены ниточки, будьте осторожны, Компи. Таким образом, она знает, что это не обычное число, а утверждение, и она не стала бы добавлять 4+4. Написание ей этого выглядело бы примерно так».

Лиззи открыла свою языковую «книгу» и перелистнула несколько страниц, прежде чем продолжить говорить.

«4(строка)+4(строка) = 8(без строки)»

'Ух ты! Компи только кивнул, когда ты открыл это, — заметил мистер Рон, единственный, кто смотрел на Компи. Все игнорировали Рона.

«Еще один пример. Завтра будет дождь (строка) = завтра будет дождь (логическое значение)’

— Что это значит? — спросила Нана, указывая на строчку, которую читала Лиззи.

«Вот как я научил Компи логически рассуждать и принимать решения. Первая часть «Завтра будет дождь (строка)» воспринимается как буквальное предложение без какой-либо оценки», в то время как Compy оценивает часть выражения после знака равенства как истинную или ложную в зависимости от того, произошло ли событие. произошло или нет. Таким образом, если завтра будет дождь, утверждение будет разрешено как «Завтра будет дождь = истина», в противном случае Compy оценил бы утверждение как «завтра будет дождь = ложь». Истинное и ложное составляют (булев) тип».

«Просто сногсшибательная Лиззи. За это вы заслуживаете Нобелевской премии», — уже заметил мистер Рон, ставший поклонником Лиззи.

«Время ушло далеко, поэтому я покажу вам еще один пример изобретенного мною типа данных», — без особых усилий продолжила Лиззи.

«Я называю эти два типа числовыми, и они бывают целыми и плавающими».

«Я использую целое число, когда хочу представить числа без десятичной точки, такие как 2 или 7, в то время как я использую число с плавающей запятой для чисел с десятичной точкой, таких как 6,9».

'float особенно важен, так как он предписывает Compy не выполнять скалярное произведение для таких чисел, как 2,7 или 6,9 (т. умножить, чтобы получить X*Y. Поскольку точка (.) представляла собой не только скалярное произведение, но и десятичную точку, добавление типа float помогло Compy различать, когда я использую точку как десятичную точку, а не как скалярное произведение. 6.9 (с плавающей запятой), как я упоминал ранее, будет восприниматься Compy как десятичное число, которое можно соответственно складывать, вычитать, умножать и делить».

«Используя соответствующие типы данных, я могу проинструктировать Compy о типе операции, которую она может выполнять с различными данными, она знает, что нельзя добавлять строки, и она знает, что не следует конкатенировать числа».

— Сцепить числа, говоришь? — вставила эти слова Нана.

'Да! Таким образом, Compy не выводит 1 (целое число) + 7 (целое число) как 17 (целое число), однако 1 (строка) + 7 (строка) = 17 (строка). Это конкатенация. Это соединение двух слов вместе с помощью оператора плюс (+). Конкатенация выполняется на строках». ответила Лиззи.

«Суть в том, что, используя разные типы данных, я могу указать Compy операции, которые можно хранить с данными, насколько велики данные, учитывая, что строки обычно больше, чем целые числа, и как манипулировать их значениями».

«Обучение Compy использованию типов данных помогло устранить двусмысленность в моем языке, и именно благодаря этому вчера Compy показал себя на удивление хорошо. С правильными типами данных... для Compy нет ничего невозможного!

Приведенная выше история является чисто вымышленной, и все связи с реальными событиями и людьми являются чисто случайными (отказ от ответственности!… вся история была плодом моего воображения)

Надеюсь, рассказа выше, который занял довольно много времени и 2500 слов, хватило, чтобы объяснить вам, почему мы используем типы данных в Solidity. Почему мы используем типы данных в любом языке программирования?

Типы данных помогают определить объем памяти, которую будут занимать данные, операции, которые можно выполнять с данными, а также то, передаются ли значения переменной по ссылке или по значению в функции (я бы написал скоро будет статья о передаче по ссылке и передаче по значению. Следите за мной, чтобы узнать, когда я ее опубликую)

В Solidity 0.8.0 есть несколько типов данных, одни для числовых типов, другие для нечисловых. Я просто упомяну здесь типы данных и напишу отдельную статью о каждом из них. (Вы знаете, что делать. Просто нажмите кнопку «Подписаться», чтобы получить дроп!)

1)int8-int256(целочисленный тип от 8 бит до 256 бит. Может быть положительным или отрицательным. Пример 6, -23)

2) fixed (предполагается, что он представляет числа с плавающей запятой, хотя, начиная с Solidity 0.8.0, этот тип еще не полностью поддерживается)

3)uint(Это целочисленный тип без знака. Он представляет целые типы без отрицательного знака. Вот почему он называется беззнаковым. Примеры включают 5, 7, 10005 и т. д..)

4)строка: похожа на строку в языке Lizzy. Он представляет литералы в кодировке UTF-8 (куча жаргона, не беспокойтесь об этом). Просто знайте, что если вы хотите сохранить формулировку слов, таких как «Баланс контракта =» или «Отчеканите свои NFT по этому адресу», сохраните их в строковом типе.

5)Массив: это набор различных значений одного типа. Массив может выглядеть примерно так. Строка [] алфавитов = {а, б, в, г, е}. Он содержит значения тех же типов алфавитов (кстати, знаете ли вы, что алфавиты произошли от ALPHABETA, что означает A и B на латыни?)

6) Enum: используется для непрерывного подсчета набора элементов. Я не использую его так много, поэтому я не думаю, что вы будете. Чуть позже я тоже напишу статью о ENUMS.

7)Структура: мне это очень нравится. Это как объект в JavaScript или словарь в Python. Он сопоставляет ключи значениям. Я бы тоже об этом написал… Не обессудьте, в этой статье уже 3000 слов плюс

8)сопоставление: сопоставление(uint =›string) testMap. Это выглядит примерно так. Будут подробности.

9) Адрес: тот, который мне нравится больше всего. Вы не можете успешно написать смарт-контракт без этого типа данных. Это адрес учетных записей и смарт-контрактов в блокчейне Ethereum. Это шестнадцатеричное число размером 20 байт (160 бит). Он может представлять значения в диапазоне от 0 до 2²⁵⁶. (обычно он представлен в шестнадцатеричном формате).

И да! Это подводит все к концу. Надеюсь, вам понравился мой рассказ и статья. На то, чтобы написать все это, у меня ушло 4 дня, несмотря на мой плотный график, вы можете выразить свою любовь, похлопав этой статье и поделившись ею. Вы можете быть уверены, что я опубликую вторую часть этой статьи раньше, если получу от вас достаточную поддержку.

Большое спасибо за прочтение… впереди день Compy (что бы это ни значило для вас, чемпион!)

Я исправил большинство своих грамматических ошибок с помощью Grammarly. Это отличный инструмент, я рекомендую его всем писателям. Если у вас есть какие-либо комментарии или предложения, пожалуйста, оставьте их в поле для комментариев. Кроме того, нажмите кнопку Поделиться… ваши друзья тоже заслуживают того, чтобы быть здесь.

Вот ссылка на мою статью Что такое Solidity.

Я люблю вас, ребята!