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.