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



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


Глава 3 
____________________________________ 
[ 72 ] 
___________________________________ 
Перечисление 
Solidity поддерживает перечисления. В листинге 3.5 приведен пример синтаксиса 
при использовании перечислений. 
Листинг 3.5. Пример синтаксиса при использовании перечислений 
contract sample { 
enum OS { Windows, Linux, OSX, UNIX } 
OS 
choice; 
function sample(OS chosen){ 
choice 

chosen; 

function 
setLinuxOS(){ 
choice 

OS.Linux; 

function getChoice() returns (OS chosenOS){ 
return 
choice; 


Сопоставление 
Сопоставление (отображение, mapping) представляет собой хеш-таблицу
2
. Сопос-
тавление может находиться только в хранилище, но не в памяти, поэтому оно
может быть объявлено только как статическая переменная. Сопоставление можно 
рассматривать как набор данных, состоящий из пар ключ-значение. Но ключ на са-
мом деле не хранится. Для поиска значений используется хеш ключа, вычисленный 
по алгоритму 
keccak256
. Сопоставления не имеют длины и не могут быть присвоены 
другому сопоставлению. 
В листинге 3.6 показан пример создания и использования сопоставления. 
Листинг 3.6. Пример создания и использования сопоставления 
contract sample{ 
mapping (int => string) myMap; 
2
Сопоставление (Mapping) реализует ассоциативный массив. В С++ это 
map
, в языке Python это назы-
вается 
dict 
(словарь). 


Разработка 
смарт-контрактов 
____________________________________ 
[ 73 ] 
___________________________________ 
function sample(int key, string value){ 
myMap[key] 

value; 
//myMap2 
это 
ссылка 
на 
myMap 
mapping (int => string) myMap2 = myMap; 


Если вы попытаетесь получить доступ к несуществующему ключу, все биты ре-
зультата будут нулевыми. 
Оператор 
delete
Оператор 
delete
можно применить к любой переменной, чтобы сбросить ее в со-
стояние по умолчанию, когда все биты равны нулю.
Если мы применяем оператор 
delete
к динамическому массиву, он удаляет все эле-
менты массива, и длина массива становится равной нулю. Но если применить его 
к статическому массиву, то обнуляются все элементы массива. 
Если применить оператор 
delete
к сопоставлению целиком, то ничего не произой-
дет. Но если вы примените 
delete
к ключу сопоставления, то значение, связанное 
с ключом, будет удалено (обнулено). 
В листинге 3.7 приведен пример, демонстрирующий применение оператора 
delete

Листинг 3.7. Пример использования оператора 
delete
contract sample { 
struct Struct { 
mapping 
(int 
=> 
int) 
myMap; 
int 
myNumber; 

int[] 
myArray; 
Struct 
myStruct; 
function sample(int key, int value, int number, int[] array) { 
//сопоставления не могут быть присвоены, поэтому при 
//конструировании 
структуры 
мы 
игнорируем 
сопоставления 
myStruct 

Struct(number); 
//задаем 
соответствие 
key/value 
myStruct.myMap[key] 

value; 
myArray 

array; 



Download 9,22 Mb.

Do'stlaringiz bilan baham:
1   ...   22   23   24   25   26   27   28   29   ...   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