ETFFIN Finance >> Kursus keuangan >  >> fund >> Informasi dana

Apa itu Soliditas?

Solidity adalah bahasa pemrograman yang digunakan untuk menulis, membuat, dan menerapkan kontrak pintar. Jika Anda ingin mempelajari kontrak pintar, Anda tidak dapat melakukannya tanpa memahami dan mempelajari Soliditas.

Ini awalnya diusulkan kembali pada tahun 2014 oleh Gavin Wood, tetapi kemudian dikembangkan dan diluncurkan oleh Christian Reitwiessner, Alex Beregszaszi, Yoichi Hirai, dan beberapa mantan kontributor inti Ethereum, Soliditas memungkinkan pembuatan dan penulisan kontrak pintar pada platform blockchain seperti Ethereum, Ethereum Klasik, Tron, diantara yang lain.

Ini berfungsi sebagai bahasa utama di Ethereum's Virtual Machine (EVM).

Mirip dengan Javascript

Dalam bentuknya yang paling dasar, itu adalah "bahasa yang diketik secara longgar". Fungsi bahasa sangat mirip dengan C dan Javascript tetapi mengintegrasikan dukungan tambahan untuk variabel status, tipe data, dan fungsi pemrograman.

Saat Wood pertama kali mendesain ini, katanya itu untuk membuatnya akrab dan mudah bagi pengembang web yang ada. Berbeda dengan Javascript, Solidity memiliki pengetikan statis dan tipe pengembalian variadik.

Dengan Soliditas, pengembang blockchain dapat menulis aplikasi yang menerapkan logika bisnis self-enforcing (self-governing) yang diwujudkan dalam kontrak pintar. Secara polos, inilah yang memungkinkan kontrak untuk dijalankan sendiri, tidak memerlukan keterlibatan manusia, setelah kode ditulis.

Bagi mereka yang merupakan programmer yang terampil, bahasa ini cukup mudah. Kepada orang awam, Namun, butuh waktu dan kesabaran.

Memahami Sintaks dan Tipe Data Umum

Soliditas mendukung tipe nilai generik, khusus boolean, bilangan bulat, alamat, string literal, dan pengubah. Mari kita jelajahi masing-masing.

Boolean

Dalam ilmu komputer, Tipe data Boolean adalah tipe data yang memiliki dua kemungkinan nilai-benar atau salah. Nilai-nilai ini dimaksudkan untuk mewakili dua nilai kebenaran logika dan aljabar Boolean. Untuk informasi lebih lanjut tentang ini, silahkan klik disini.

Operator logika mengembalikan tipe data Boolean:

  • ! Negasi logis
  • &&konjungsi logis, "dan"
  • || disjungsi logis, "atau"
  • ==persamaan
  • !=ketidaksamaan

Bilangan bulat

Soliditas mendukung int/unit untuk masing-masing bilangan bulat yang ditandatangani dan tidak ditandatangani. Alokasi penyimpanan ini bisa dari berbagai ukuran. Kata kunci seperti uint8 dan uint256 dapat digunakan untuk mengalokasikan ukuran penyimpanan masing-masing 8 bit hingga 256 bit. Secara default, alokasi 256 bit. Itu adalah, uint dan int dapat digunakan sebagai pengganti uint256 dan int256.

Operator yang kompatibel dengan tipe data integer adalah:

  • Perbandingan:<=, <, ==, !=,> =,> . Ini digunakan untuk mengevaluasi untuk bool.
  • Operator bit:&, |, ^ bitwise eksklusif 'atau', ~ negasi bitwise, "bukan".
  • Operator aritmatika:+, -, unary -, unary +, *, /, % sisa, ** eksponensial, <> pergeseran kanan.

EVM mengembalikan Pengecualian Runtime ketika operator modulus diterapkan ke nol dari operasi "bagi dengan nol".

Alamat

Sebuah alamat dapat menyimpan nilai 20-byte yang setara dengan ukuran alamat Ethereum. Jenis alamat ini didukung dengan anggota yang berfungsi sebagai basis kontrak.

Untuk informasi lebih lanjut tentang "nilai-byte", silahkan klik disini.

String Literal

Sebuah "string literal" atau string anonim, adalah jenis literal dalam pemrograman untuk representasi nilai "string" dalam kode sumber program komputer. Untuk informasi lebih lanjut tentang ini, silahkan klik disini.

Berbeda dengan bahasa C, string literal dalam Solidity menyiratkan nilai nol yang tertinggal. Ini dapat diwakili dengan menggunakan tanda kutip tunggal atau ganda --- "foo" atau 'bar.'

Sebagai contoh, "bar" akan mewakili elemen 3-byte, bukan empat (4).

Demikian pula, dengan literal integer, literal dapat dikonversi secara inheren, menggunakan fit--byte atau string yang sesuai.

pengubah

Dalam kontrak pintar, pengubah membantu memastikan koherensi dari kondisi yang ditentukan, sebelum mengeksekusi kode. Dengan kata lain, itu memastikan kondisi didefinisikan dengan benar, sehingga berisiko perhitungan yang tidak akurat dan dengan demikian eksekusi.

Pemetaan

Solidity menyediakan array dasar, enum, operator, dan nilai hash untuk membuat struktur data, dikenal sebagai "pemetaan". Ini digunakan untuk mengembalikan nilai yang terkait dengan lokasi penyimpanan tertentu.

"Array" adalah alokasi memori yang berdekatan dengan ukuran yang ditentukan oleh programmer di mana jika ukurannya diinisialisasi sebagai "K", dan jenis elemen dipakai sebagai "T", array dapat ditulis sebagai T [k].

Array Dinamis

Array juga dapat diinstansiasi secara dinamis menggunakan notasi uint [ ] [6]. Ini berarti bahwa array dinamis dengan enam alokasi memori yang berdekatan akan dimulai, sedangkan array dua dimensi dapat diinisialisasi sebagai arr [2] [4], di mana kedua indeks menunjukkan dimensi matriks.

Contoh Kode Soliditas

soliditas ragma> =0.5.0 <0.7.0;

contract Coin { // Kata kunci "publik" membuat variabel
// dapat diakses dari kontrak lain
alamat menteri publik;
pemetaan (alamat => uint) keseimbangan publik; // Acara memungkinkan klien untuk bereaksi terhadap
// perubahan kontrak yang Anda nyatakan
acara Terkirim (alamat dari, dialamatkan ke, jumlah uint); // Kode konstruktor hanya dijalankan ketika kontrak
// dibuat
konstruktor() publik {
minter =msg.sender; } // Mengirim sejumlah koin yang baru dibuat ke alamat
// Hanya bisa dipanggil oleh pembuat kontrak
fungsi mint (penerima alamat, jumlah uint) publik {
membutuhkan(msg.sender ==minter); membutuhkan (jumlah <1e60); saldo[penerima] +=jumlah; } // Mengirim sejumlah koin yang ada
// dari penelepon ke alamat
fungsi kirim (penerima alamat, jumlah uint) publik {
membutuhkan(jumlah <=saldo[msg.sender], "Saldo tidak cukup."); saldo[msg.sender] -=jumlah; saldo[penerima] +=jumlah; memancarkan Terkirim (msg.sender, penerima, jumlah); } }