String

Что такое String в Solidity?

String - тип данных в Solidity, который представляет строковые значения. Он используется для хранения и обработки текстовых данных, таких как имена, адреса, текстовые сообщения и т.д. Строковые значения могут содержать любое количество символов и могут быть произвольной длины.

В Solidity строковые значения представляются в формате UTF-8. Они могут содержать символы на любом языке. Однако в Solidity каждый символ занимает определенное количество байт, поэтому необходимо учитывать размер строковых значений при их обработке.

string penis = "Hello World!";

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

С другой стороны строки в Solidity это далеко не самый важный тип данных и на стороне смарт-контракта нам не особо нужно играться со строками, поэтому разработчики могли намеренно убрать эти возможности, чтобы излишне не нагружать EVM бесполезными действиями.

Примеры кода с использованием string

Строковые значения в Solidity могут использоваться для передачи параметров в функции и для хранения данных в памяти. Для обработки строковых значений в Solidity можно использовать различные функции и операторы.

Например в этом коде мы объявляем переменную text с трипом данных string. После чего создаем функцию, которая принимает в качестве аргумента переменную message и задает ее в качестве значение переменной text.

pragma solidity ^0.8.0;
  
contract LearnStrings
{
    string public text;

    function setTextByPassing(string memory message) public {
        text = message;
    }
   
}

По сути мы получаем элементарный код, одна часть которого задает данные, а вторая часть которого их хранит.

Видео-объяснение string в Solidity


Подпишись и получи доступ к бесплатным курсам и обучающим материалам от Solidity University! Изучай Solidity и Блокчейн Разработку вместе с нами!

Готово! Проверьте вашу почту и перейдите по ссылке.
Упс, что-то пошло не так.. Пожалуйста попробуйте ещё раз.