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



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


Глава 3 
____________________________________ 
[ 78 ] 
___________________________________ 
function makePayment(int d) payable 



d; 


contract sample2{ 
function 
hello() 


function 
sample2(address 
addressOfContract) 

//отправка 12 wei при создании контракта 
sample1 s = (new sample1).value(12)(23); 
s.makePayment(22); 
//также 
отправляем 
эфир 
s.makePayment.value(45)(12); 
//назначаем 
стоимость 
газа 
s.makePayment.gas(895)(12); 
//отправляем эфир, а также назначаем стоимость газа 
s.makePayment.value(4).gas(900)(12); 
//hello() - это внутренний вызов, this.hello() - это 
//внешний вызов 
this.hello(); 
//указатель на контракт, который уже развернут 
sample1 
s2 

sample1(addressOfContract); 
s2.makePayment(112); 


Вызовы с ключевым словом 
this
выполняются как внешние. Ключевое слово
this
внутри функции ссылается на текущий экземпляр контракта. 


Разработка 
смарт-контрактов 
____________________________________ 
[ 79 ] 
___________________________________ 
Свойства контракта 
Пришло время подробнее изучить контракты. Мы узнаем о некоторых новых их 
свойствах, а также более детально рассмотрим уже знакомые опции. 
Видимость 
Видимость статических переменных или функций определяет, кто их может видеть. 
Существует четыре типа видимости функций и статических переменных: 
external

public

internal
и 
private

По умолчанию функции имеют видимость 
public
, а статические переменные —
видимость 
internal
. Давайте разберемся, что означает каждая разновидность ви- 
димости: 
external
— внешние функции (external functions) могут быть вызваны только из 
другого контракта или через транзакцию. Внешняя функция 
f
не может быть 
вызвана внутренним вызовом. Это означает, что вызов 
f()
не будет работать, но 
вызов 
this.f()
сработает. Вы не можете применить видимость 
external
к стати-
ческим переменным
public
— общие функции и статические переменные могут быть доступны лю-
быми возможными способами. Созданные компилятором функции доступа 
включают все статические переменные. Вы не можете создавать собственные 
функции доступа (аксессоры). Фактически компилятор генерирует только гетте-
ры
4
, но не сеттеры
5

internal
— внутренние функции и статические переменные могут быть доступ-
ны только внутри текущего контракта и контрактов, наследующих его. Вы не 
можете использовать для доступа ключевое слово 
this

private
— частные функции и статические переменные похожи на внутренние
но они недоступны для наследующих контрактов. 
В листинге 3.10 приведен пример, демонстрирующий видимость и функции доступа. 
Листинг 3.10. Пример различной видимости и функций доступа 
contract sample1 

int public b = 78; 
int internal c = 90; 
4
Геттер (getter) — метод, возвращающий значение переменной. 
5
Сеттер (setter) — метод, присваивающий значение переменной.


Download 9,22 Mb.

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