Katılık - Değişkenler
Solidity, üç tür değişkeni destekler.
State Variables - Değerleri bir sözleşmeli depoda kalıcı olarak depolanan değişkenler.
Local Variables - İşlev çalıştırılana kadar değerleri mevcut olan değişkenler.
Global Variables - Blockchain hakkında bilgi almak için kullanılan global ad alanında özel değişkenler bulunur.
Solidity, statik olarak yazılmış bir dildir; bu, durum veya yerel değişken türünün bildirim sırasında belirtilmesi gerektiği anlamına gelir. Bildirilen her değişkenin türüne bağlı olarak her zaman bir varsayılan değeri vardır. "Tanımlanmamış" veya "boş" kavramı yoktur.
Durum değişkeni
Değerleri kalıcı olarak bir sözleşmeli depoda saklanan değişkenler.
pragma solidity ^0.5.0;
contract SolidityTest {
uint storedData; // State variable
constructor() public {
storedData = 10; // Using State variable
}
}
Yerel değişken
Değerleri yalnızca tanımlandığı bir işlev içinde bulunan değişkenler. İşlev parametreleri her zaman bu işlev için yereldir.
pragma solidity ^0.5.0;
contract SolidityTest {
uint storedData; // State variable
constructor() public {
storedData = 10;
}
function getResult() public view returns(uint){
uint a = 1; // local variable
uint b = 2;
uint result = a + b;
return result; //access the local variable
}
}
Misal
pragma solidity ^0.5.0;
contract SolidityTest {
uint storedData; // State variable
constructor() public {
storedData = 10;
}
function getResult() public view returns(uint){
uint a = 1; // local variable
uint b = 2;
uint result = a + b;
return storedData; //access the state variable
}
}
Solidity First Application bölümünde verilen adımları kullanarak yukarıdaki programı çalıştırın .
Çıktı
0: uint256: 10
Global Değişkenler
Bunlar, küresel çalışma alanında bulunan ve blok zinciri ve işlem özellikleri hakkında bilgi sağlayan özel değişkenlerdir.
İsim | İadeler |
---|---|
blockhash (uint blockNumber) döndürür (bayt32) | Verilen bloğun karması - yalnızca en son 256 için çalışır, mevcut bloklar hariç |
block.coinbase (ödenecek adres) | Mevcut blok madencisinin adresi |
block.difficulty (uint) | Mevcut blok zorluğu |
block.gaslimit (uint) | Mevcut blok gaslimit |
block.number (uint) | Mevcut blok numarası |
block.timestamp (uint) | Unix döneminden bu yana saniye cinsinden geçerli blok zaman damgası |
gasleft () döndürür (uint256) | Kalan gaz |
msg.data (bayt çağrı verileri) | Çağrı verilerini tamamla |
msg.sender (ödenecek adres) | Mesajın göndereni (mevcut arayan) |
msg.sig (bayt4) | Çağrı verilerinin ilk dört baytı (işlev tanımlayıcı) |
msg.value (uint) | Mesajla birlikte gönderilen wei sayısı |
şimdi (uint) | Mevcut blok zaman damgası |
tx.gasprice (uint) | İşlemin gaz fiyatı |
tx.origin (ödenecek adres) | İşlemin göndereni |
Katılık Değişken İsimleri
Değişkenlerinizi Solidity'de adlandırırken aşağıdaki kuralları aklınızda bulundurun.
Solidity ayrılmış anahtar sözcüklerinden hiçbirini değişken adı olarak kullanmamalısınız. Bu anahtar kelimeler bir sonraki bölümde bahsedilmektedir. Örneğin, break veya boolean değişken adları geçerli değildir.
Katılık değişkeni adları bir sayı (0-9) ile başlamamalıdır. Bir harf veya alt çizgi karakteri ile başlamalıdırlar. Örneğin, 123test geçersiz bir değişken adıdır, ancak _123test geçerlidir.
Solidity değişken adları büyük / küçük harfe duyarlıdır. Örneğin, Ad ve ad iki farklı değişkendir.