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



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


Глава 3 
____________________________________ 
[ 74 ] 
___________________________________ 
function 
reset(){ 
//теперь длина myArray равна нулю 
delete 
myArray; 
//myNumber теперь будет обнулен,
//но 
myMap 
не 
изменится 
delete 
myStruct; 

function deleteKey(int key){ 
//здесь 
мы 
удаляем 
ключ 
delete 
myStruct.myMap[key]; 


Преобразование элементарных типов 
Все сущности языка Solidity, которые не являются массивами, строками, структу-
рами, перечислениями и сопоставлениями, относятся к элементарным типам. 
Если в операторе встречаются два разных элементарных типа, то компилятор пыта-
ется выполнить неявное преобразование типа одного из операндов к типу другого 
операнда. В общем случае неявное преобразование возможно, если оно имеет се-
мантический смысл и не приводит к потере информации. Например, 
uint8
можно 
преобразовать в 
uint16
, а 
uint128
можно преобразовать в 
uint256
. Но 
int8
нельзя 
преобразовать в 
uint256
, потому что 
uint256
не может хранить отрицательные чис-
ла. Кроме того, целые числа без знака могут быть преобразованы в байты того же 
или большего размера, но не наоборот. Любой тип, который может быть преобра-
зован в 
uint160
, также может быть преобразован в тип 
address

Solidity поддерживает и явное преобразование типов. Если компилятор не допуска-
ет неявное преобразование типов, вы можете попробовать применить явное преоб-
разование. Тем не менее, настоятельно рекомендуется избегать явного преобразо-
вания, потому что оно может дать неожиданные результаты. 
Давайте рассмотрим пример явного преобразования: 
uint32 a = 0x12345678; 
uint16 b = uint16(a); // теперь b = 0x5678 
Здесь мы преобразовываем 
uint32
в 
uint16
в явном виде, то есть превращаем боль-
ший тип в меньший. Следовательно, старшие разряды числа отбрасываются. 
Ключевое слово 
var
В Solidity есть ключевое слово 
var
, служащее для объявления переменных. В этом 
случае тип переменной определяется автоматически, в зависимости от типа первого 
значения, которое будет присвоено переменной. Как только первое значение при-


Разработка 
смарт-контрактов 
____________________________________ 
[ 75 ] 
___________________________________ 
своено, тип переменной фиксируется. Если вы захотите присвоить этой переменной 
значение другого типа, это вызовет преобразование типа. 
Вот простой пример, который демонстрирует применение 
var

int256 x = 12; 
//тип переменной y будет тоже int256 
var y = x; 
uint256 z= 9; 
//здесь возникнет исключение, потому что 
//неявное преобразование типа int в uint невозможно 
y = z; 
Помните, что ключевое слово 
var
нельзя использовать при объявлении массивов 
и сопоставлений, а также при объявлении параметров функции и статических
переменных.
Управляющие структуры 
Solidity поддерживает управляющие структуры 
if

else

while

for

break

continue

return
и конструкцию 
? :
3

В листинге 3.8 приведены примеры использования управляющих структур. 
Листинг 3.8. Примеры управляющих структур 
contract sample{ 
int a = 12; 
int[] 
b; 
function 
sample() 

//оператор "==" вызовет исключение для сложных типов данных 
if(a 
== 
12) 


else if(a == 34) 


else 


var temp = 10; 
3
Тернарный оператор условия.


Download 9,22 Mb.

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