Обратите внимание на размерность переменных.
Если в других языках это, по большей части, не так важно, но в Solidity и смарт контрактам правильная размерность может сократить стоимость газа, а значит и финальную стоимость развертывания самого контракта в сети блокчейн!
Если в других языках это, по большей части, не так важно, но в Solidity и смарт контрактам правильная размерность может сократить стоимость газа, а значит и финальную стоимость развертывания самого контракта в сети блокчейн!
👍2🔥1
Кстати, о красивом коде.
Автор уроков, преподаватель одной из московских школ программирования, пишет довольно красивый код: делает отступы, сокращает функции и т.д.
Например, на текущем скрине представлены три варианта написания простого сложения. Они, по своему результату, совершенно одинаковые. Но вот как раз последний и является примером хорошего кода.
Хотите, чтобы я дальше тоже обращал внимание на такие штуки?
Автор уроков, преподаватель одной из московских школ программирования, пишет довольно красивый код: делает отступы, сокращает функции и т.д.
Например, на текущем скрине представлены три варианта написания простого сложения. Они, по своему результату, совершенно одинаковые. Но вот как раз последний и является примером хорошего кода.
Хотите, чтобы я дальше тоже обращал внимание на такие штуки?
👍5🔥1
И вот последняя функция, на которую стоит обратить внимание.
Как я понял из урока, ее не было в ранних версиях Solidity, и появилась не так уж и давно.
Unchecked() позволяет отлавливать ошибки переполнения, и, если функция дошла до максимального или минимального значения, то она не вернет ошибку, а начнет сначала диапазона.
#unchecked #function
Как я понял из урока, ее не было в ранних версиях Solidity, и появилась не так уж и давно.
Unchecked() позволяет отлавливать ошибки переполнения, и, если функция дошла до максимального или минимального значения, то она не вернет ошибку, а начнет сначала диапазона.
#unchecked #function
👍1🔥1
В завершение дня
Осталось еще два урока про типы данных, и я предлагаю пройти их в четверг и пятницу. Сами уроки вроде легкие, но существуют нюансы отличающие Solidity от других языков. Поэтому эти уроки стоит посмотреть даже опытным разработчикам.
В субботу и воскресенье оставим для отдыха и подготовки к следующей неделе. Один из уроков далее будет достаточно сложный, и потребуется, возможно, пара дней, чтобы разобраться в нем и сделать необходимую настройку рабочего пространства.
Также хотел бы попросить оставлять реакции под постами на канале, чтобы я понимал, что материал вам интересен и полезен. Обычный лайк или огонек очень мотивирует подготавливать посты по уроку.
Надеюсь вам пока заходит подобное обучение, как и мне. Если что не так, то я всегда открыт к предложениям.
Осталось еще два урока про типы данных, и я предлагаю пройти их в четверг и пятницу. Сами уроки вроде легкие, но существуют нюансы отличающие Solidity от других языков. Поэтому эти уроки стоит посмотреть даже опытным разработчикам.
В субботу и воскресенье оставим для отдыха и подготовки к следующей неделе. Один из уроков далее будет достаточно сложный, и потребуется, возможно, пара дней, чтобы разобраться в нем и сделать необходимую настройку рабочего пространства.
Также хотел бы попросить оставлять реакции под постами на канале, чтобы я понимал, что материал вам интересен и полезен. Обычный лайк или огонек очень мотивирует подготавливать посты по уроку.
Надеюсь вам пока заходит подобное обучение, как и мне. Если что не так, то я всегда открыт к предложениям.
🔥7
Урок 3. Типы данных 2.
Продолжаем осваивать базовые единицы языка.
Видео урока.
В этом уроке вводится новый тип данных - address. Ни в одном языке web2, насколько я знаю, нет ничего похожего, просто потому, что нигде не используются уникальные адреса аккаунтов пользователей (кошельков) и смарт-контрактов. Здесь же для этого разработана целая система, с котором мы познакомимся в последующих уроках.
Также особое внимание стоит уделить такому типу данных, как mapping. Для новичков он может быть немного не понятным, поэтому, если не разберетесь сами, то спрашивайте в чат или погуглите на досуге. В создании контрактов mapping используется довольно часто.
А так, приятного просмотра и легкого дня!
#урок #типыданных
Продолжаем осваивать базовые единицы языка.
Видео урока.
В этом уроке вводится новый тип данных - address. Ни в одном языке web2, насколько я знаю, нет ничего похожего, просто потому, что нигде не используются уникальные адреса аккаунтов пользователей (кошельков) и смарт-контрактов. Здесь же для этого разработана целая система, с котором мы познакомимся в последующих уроках.
Также особое внимание стоит уделить такому типу данных, как mapping. Для новичков он может быть немного не понятным, поэтому, если не разберетесь сами, то спрашивайте в чат или погуглите на досуге. В создании контрактов mapping используется довольно часто.
А так, приятного просмотра и легкого дня!
#урок #типыданных
YouTube
Solidity и смарт-контракты Ethereum, урок #3 | Типы данных string, address, mapping
ХОТИТЕ СТАТЬ РАЗРАБОТЧИКОМ Solidity, узнать об Ethereum, блокчейне и многом другом ещё больше?!
Мои друзья из GUIDE DAO (бывшая школа MCS) предлагают скидку 0,1 ETH на ВСЕ СВОИ БУТКЕМЫ ПО КРИПТЕ! Материалы этих буткемов подготовлены мной и другими специалистами:…
Мои друзья из GUIDE DAO (бывшая школа MCS) предлагают скидку 0,1 ETH на ВСЕ СВОИ БУТКЕМЫ ПО КРИПТЕ! Материалы этих буткемов подготовлены мной и другими специалистами:…
🔥1
Пара слов, которые нужно запомнить о типе данных string
1. Чем длиннее строка, тем больше это будет стоить! Не следует хранить в переменных большие предложения или тексты. В итоговом разворачивании контракта это может выйти буквально в несколько сот долларов!
2. Мы не можем померит длину строки, так как они хранятся в байтовых массивах.
3. Строки нельзя склеивать, сравнивать, или обращаться к буквам по индексу.
4. В функциях создаются только временные переменные string. При этом в рамках функций можно переопределять основные значения string, которые хранятся в блокчейне.
#string #function
1. Чем длиннее строка, тем больше это будет стоить! Не следует хранить в переменных большие предложения или тексты. В итоговом разворачивании контракта это может выйти буквально в несколько сот долларов!
2. Мы не можем померит длину строки, так как они хранятся в байтовых массивах.
3. Строки нельзя склеивать, сравнивать, или обращаться к буквам по индексу.
4. В функциях создаются только временные переменные string. При этом в рамках функций можно переопределять основные значения string, которые хранятся в блокчейне.
#string #function
👍1🔥1
В Solidity есть уникальный тип данных - address, так как смарт-контракты и пользователи имеют свой уникальный адрес в сети блокчейн.
Вместе с этим, address имеет особенные методы для работы с переменными, такие как balance или transfer.
В ходе уроков мы не раз будем с ними сталкиваться, поэтому запомнить их будет совершенное не сложно.
#address #method
Вместе с этим, address имеет особенные методы для работы с переменными, такие как balance или transfer.
В ходе уроков мы не раз будем с ними сталкиваться, поэтому запомнить их будет совершенное не сложно.
#address #method
🔥1
Mapping нужно уделить особо пристальное внимание, так как он, по моему опыту просмотренных видео о смарт-контрактах, используется довольно часто.
Mapping или сопоставление - это хранение данных в виде ключ-значение, например, "адрес кошелька => сумма пополнения".
При этом в Solidity нельзя создавать mapping, у которого в ключах или значениях смешанные типы данных. Другими словами, если ключом является address, то позже вы не можете сохранить там значение uint.
Также нужно отметить, что в "ключе" можно сохранять только простые переменные, а "значении" может выступать другой mapping или даже массив.
#mapping
Mapping или сопоставление - это хранение данных в виде ключ-значение, например, "адрес кошелька => сумма пополнения".
При этом в Solidity нельзя создавать mapping, у которого в ключах или значениях смешанные типы данных. Другими словами, если ключом является address, то позже вы не можете сохранить там значение uint.
Также нужно отметить, что в "ключе" можно сохранять только простые переменные, а "значении" может выступать другой mapping или даже массив.
#mapping
🔥1
Урок 4
Последний урок про типы данных в Solidity.
Видео урока.
Тем, кто пришел на обучение недавно, крайне советую пересмотреть предыдущие уроки, которые я выкладывал в понедельник, среду и четверг примерно в 11 утра.
Этот урок, скорее всего, покажется немного сложнее для новичков, чем предыдущие, так как тут рассматриваются сложные типы данных, вроде struct и array.
Я все также в течение дня буду выкладывать посты, на что стоит обратить внимание.
Также, я очень рад, что этот урок выпал на конец недели, и у нас будут выходные, чтобы повторить, усвоить и закрепить материал из всех уроков на неделе.
С понедельника начнутся уже более серьезные вещи в Solidity, поэтому будет здорово, если вы хорошо поймете базу.
Приятного просмотра и хорошего дня!
#урок #типыданных
Последний урок про типы данных в Solidity.
Видео урока.
Тем, кто пришел на обучение недавно, крайне советую пересмотреть предыдущие уроки, которые я выкладывал в понедельник, среду и четверг примерно в 11 утра.
Этот урок, скорее всего, покажется немного сложнее для новичков, чем предыдущие, так как тут рассматриваются сложные типы данных, вроде struct и array.
Я все также в течение дня буду выкладывать посты, на что стоит обратить внимание.
Также, я очень рад, что этот урок выпал на конец недели, и у нас будут выходные, чтобы повторить, усвоить и закрепить материал из всех уроков на неделе.
С понедельника начнутся уже более серьезные вещи в Solidity, поэтому будет здорово, если вы хорошо поймете базу.
Приятного просмотра и хорошего дня!
#урок #типыданных
YouTube
Solidity и смарт-контракты Ethereum, урок #4 | Типы данных array, bytes, enum, struct
ХОТИТЕ СТАТЬ РАЗРАБОТЧИКОМ Solidity, узнать об Ethereum, блокчейне и многом другом ещё больше?!
Мои друзья из GUIDE DAO (бывшая школа MCS) предлагают скидку 0,1 ETH на ВСЕ СВОИ БУТКЕМЫ ПО КРИПТЕ! Материалы этих буткемов подготовлены мной и другими специалистами:…
Мои друзья из GUIDE DAO (бывшая школа MCS) предлагают скидку 0,1 ETH на ВСЕ СВОИ БУТКЕМЫ ПО КРИПТЕ! Материалы этих буткемов подготовлены мной и другими специалистами:…
🔥1
Несколько слов о enum.
В дальнейших уроках он будет использован не так часто, однако в смарт-контрактах иногда выполняет достаточно значимые функции.
1. С помощью enum можно создавать свои собственные не сложные структуры типов данных.
2. Мы можем использовать enum для создания переменных и статусов для них.
3. В enum, при вызове функций, показывается не сам статус, а его индекс (порядок в списке).
#enum #типданных
В дальнейших уроках он будет использован не так часто, однако в смарт-контрактах иногда выполняет достаточно значимые функции.
1. С помощью enum можно создавать свои собственные не сложные структуры типов данных.
2. Мы можем использовать enum для создания переменных и статусов для них.
3. В enum, при вызове функций, показывается не сам статус, а его индекс (порядок в списке).
#enum #типданных
👍3🔥1
Массивы, они же array, могут быть, как с фиксированной длинной, которая указывается в квадратных скобках, так и динамические.
Нужно отметить, что на данный момент, в Solidity нельзя создавать массивы, в которых хранятся разные типы данных.
Если вы указали тип данных uint, то и все значения в массиве должны быть uint.
#array #массивы
Нужно отметить, что на данный момент, в Solidity нельзя создавать массивы, в которых хранятся разные типы данных.
Если вы указали тип данных uint, то и все значения в массиве должны быть uint.
#array #массивы
👍1🔥1
Массивы могут быть вложенными.
В этом случае длина массива, например, uint[10][5] будет равна 5, а длина вложенных - 10. Т.е. длина основного массива читается с конца.
Также обратите внимание, что значения в массивах нумеруются с "0".
#array #массивы #вложенныемассивы
В этом случае длина массива, например, uint[10][5] будет равна 5, а длина вложенных - 10. Т.е. длина основного массива читается с конца.
Также обратите внимание, что значения в массивах нумеруются с "0".
#array #массивы #вложенныемассивы
👍3🔥1
В текущих укрока bytes будут использоваться редко. Тем не менее нужно запомнить, что информация в переменных bytes хранится именно как последовательность байтов, другими словами различные символы, буквы и цифры будут иметь измененный вид, как в примере на скрине.
#bytes #типыданных
#bytes #типыданных
🔥1
Struct используется довольно часто в сложных контрактах, поэтому знать этот тип данных не только нужно, но и важно!
В struct мы можем объявлять специальные поля, как в примере на скрине. При этом struct может хранить другие сложные типы данных, типа массивов и mapping.
#struct #типыданных
В struct мы можем объявлять специальные поля, как в примере на скрине. При этом struct может хранить другие сложные типы данных, типа массивов и mapping.
#struct #типыданных
🔥1