Apa itu 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); } }
Informasi dana
-
Apa Jenis Aset Utama?
Aset adalah sumber daya yang dimiliki atau dikendalikan oleh individu, korporasi Korporasi Korporasi adalah badan hukum yang dibuat oleh orang perseorangan, pemegang saham, atau pemegang saham, dengan...
-
Jenis asuransi mobil:Cakupan apa yang saya butuhkan?
Belanja untuk asuransi mobil bisa sangat banyak. Tetapi sedikit riset dapat membantu dalam menemukan kebijakan yang tepat untuk kebutuhan Anda. Pertanggungan asuransi mobil Anda mungkin terlihat ber...