Нараян Прасти



Download 9,22 Mb.
Pdf ko'rish
bet25/47
Sana26.02.2022
Hajmi9,22 Mb.
#472912
1   ...   21   22   23   24   25   26   27   28   ...   47
Bog'liq
Прасти Н. - Блокчейн. Разработка приложений - 2018


Глава 3 
____________________________________ 
[ 70 ] 
___________________________________ 
//вызовет исключение во время компиляции,
//так как myArray4 не может быть 
//назначен комплексному типу, хранящемуся в памяти 
uint8[2] myArray4 = [1, 2]; 


Вам будет полезно знать о некоторых тонкостях работы с массивами: 
массивы имеют свойство 
length
. Вы можете присвоить свое значение свойству 
length
, чтобы изменить размер массива. Однако вы не можете изменить размер 
массива, хранящегося в памяти, или размер статического массива; 
если вы попытаетесь обратиться к несуществующему индексу, это вызовет ис-
ключение. 
Запомните, что массивы, структуры и таблицы сопоставлений не могут быть па-
раметрами функций, а также не могут быть возвращены функциями. 
Строки 
В Solidity существует два способа создать строки: используя объявления 
bytes
и 
string
. Объявление 
bytes 
применяется для создания неформатированной строки, 
а 
string
— для создания строки в кодировке UTF-8. Длина строки всегда динами- 
ческая. 
В листинге 3.3 приведен пример синтаксиса строк. 
Листинг 3.3. Пример синтаксиса при использовании строк 
contract sample{ 
//создаем пустую строку myString 
string myString = ""; 
//создаем неформатированную строку 
bytes 
myRawString; 
function sample(string initString, bytes rawStringInit){ 
myString 

initString; 
//myString2 содержит указатель на myString 
string 
myString2 

myString; 
//myString3 - это строка в памяти 
string memory myString3 = "ABCDE"; 


Разработка 
смарт-контрактов 
____________________________________ 
[ 71 ] 
___________________________________ 
//меняем длину и содержимое строки 
myString3 

"XYZ"; 
//присваиваем значение неформатированной строке 
myRawString 

rawStringInit; 
//увеличиваем 
длину 
myRawString 
myRawString.length++; 
//вызовет 
исключение 
при 
компиляции, 
//потому что строка расположена не в памяти 
string 
myString4 

"Example"; 
//вызовет 
исключение 
при 
компиляции 
string 
myString5 

initString; 


Структуры 
Solidity поддерживает структуры. В листинге 3.4 приведен пример синтаксиса при 
использовании структур. 
Листинг 3.4. Пример синтаксиса при использовании структур 
contract sample{ 
struct myStruct { 
bool 
myBool; 
string 
myString; 

myStruct 
s1; 
myStruct s2 = myStruct(true, ""); //синтаксис структурного метода 
function sample(bool initBool, string initString){ 
//создаем экземпляр структуры в хранилище (storage) 
s1 

myStruct(initBool, 
initString); 
//создаем экземпляр в памяти (memory) 
myStruct memory s3 = myStruct(initBool, initString); 


Учтите, что параметр функции не может быть структурой, и функция не может
возвращать структуру. 


Download 9,22 Mb.

Do'stlaringiz bilan baham:
1   ...   21   22   23   24   25   26   27   28   ...   47




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish