Soliditas - Variabel

Soliditas mendukung tiga jenis variabel.

  • State Variables - Variabel yang nilainya disimpan secara permanen dalam penyimpanan kontrak.

  • Local Variables - Variabel yang nilainya ada hingga fungsi dijalankan.

  • Global Variables - Variabel khusus ada di namespace global yang digunakan untuk mendapatkan informasi tentang blockchain.

Soliditas adalah bahasa yang diketik secara statis, yang berarti bahwa tipe variabel negara bagian atau lokal perlu ditentukan selama deklarasi. Setiap variabel yang dideklarasikan selalu memiliki nilai default berdasarkan tipenya. Tidak ada konsep "tidak ditentukan" atau "nol".

Variabel Status

Variabel yang nilainya disimpan secara permanen dalam penyimpanan kontrak.

pragma solidity ^0.5.0;
contract SolidityTest {
   uint storedData;      // State variable
   constructor() public {
      storedData = 10;   // Using State variable
   }
}

Variabel Lokal

Variabel yang nilainya hanya tersedia dalam fungsi yang ditentukan. Parameter fungsi selalu lokal untuk fungsi itu.

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
   }
}

Contoh

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
   }
}

Jalankan program di atas menggunakan langkah-langkah yang disediakan di bab Aplikasi Solidity First .

Keluaran

0: uint256: 10

Variabel Global

Ini adalah variabel khusus yang ada di ruang kerja global dan memberikan informasi tentang blockchain dan properti transaksi.

Nama Kembali
blockhash (uint blockNumber) kembali (bytes32) Hash dari blok yang diberikan - hanya berfungsi untuk 256 blok terbaru, tidak termasuk blok saat ini
block.coinbase (alamat dibayarkan) Alamat blok penambang saat ini
block.difficulty (uint) Kesulitan blok saat ini
block.gaslimit (uint) Batasan gas saat ini
block.number (uint) Nomor blok saat ini
block.timestamp (uint) Stempel waktu blok saat ini sebagai detik sejak unix epoch
gasleft () kembali (uint256) Sisa gas
msg.data (byte calldata) Data panggilan lengkap
msg.sender (alamat yang harus dibayar) Pengirim pesan (penelepon saat ini)
msg.sig (byte4) Empat byte pertama dari calldata (pengenal fungsi)
nilai pesan (uint) Jumlah wei yang dikirim dengan pesan tersebut
sekarang (uint) Stempel waktu blok saat ini
tx.gasprice (uint) Harga gas dari transaksi
tx.origin (alamat yang harus dibayar) Pengirim transaksi

Nama Variabel Soliditas

Saat menamai variabel Anda dalam Solidity, perhatikan aturan berikut.

  • Anda tidak boleh menggunakan salah satu kata kunci Solidity yang dipesan sebagai nama variabel. Kata kunci ini disebutkan di bagian selanjutnya. Misalnya, nama variabel break atau boolean tidak valid.

  • Nama variabel soliditas tidak boleh dimulai dengan angka (0-9). Mereka harus dimulai dengan huruf atau karakter garis bawah. Misalnya, 123test adalah nama variabel yang tidak valid, tetapi _123test adalah nama yang valid.

  • Nama variabel soliditas peka huruf besar kecil. Misalnya, Nama dan nama adalah dua variabel berbeda.