Fungsi dan Pengubah Keterlihatan
Fahami cara mentakrifkan fungsi, mengurus keterlihatannya (public, private, internal, external) serta mengendalikan parameter dan nilai pulangan fungsi.
Fungsi dan Pengubah Keterlihatan ialah pelajaran Kontrak Pintar Rantaian Blok dengan Solidity percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Kontrak Pintar Rantaian Blok dengan Solidity, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Kontrak Pintar Rantaian Blok dengan Solidity merangkumi sejumlah 4 pelajaran.
Fungsi: Tindakan Kontrak Anda
Selamat datang ke Pelajaran 3! Hari ini, kita akan mendalami fungsi dalam Solidity. Anggap fungsi sebagai tindakan atau operasi yang boleh dilaksanakan oleh kontrak pintar Anda.
Fungsi membolehkan Anda menyusun kod, menggunakannya semula dan menentukan cara pengguna (atau kontrak lain) berinteraksi dengan data serta logik kontrak Anda.
Mentakrifkan Fungsi Mudah
Setiap fungsi memerlukan nama dan badan tempat kodnya berada. Berikut ialah struktur asasnya:
- Kata kunci
function - Nama fungsi (contohnya,
greet) - Kurungan
()untuk parameter - Kurungan keriting
{}untuk blok kod
Mari lihat contoh yang sangat mudah.
Contoh Fungsi Asas
Kontrak ini mempunyai fungsi bernama getName. Fungsi ini tidak menerima sebarang input dan hanya mengembalikan rentetan. Kita akan menambah keterlihatan tidak lama lagi!
Cuba jalankannya untuk melihat cara fungsi boleh mengembalikan nilai.
pragma solidity ^0.8.0;
contract MyFirstFunctions {
function getName() pure returns (string memory) {
return "Coddy";
}
}Mengawal Akses: Keterlihatan
Fungsi Solidity, seperti pemboleh ubah, mempunyai pengubah keterlihatan. Pengubah ini menentukan siapa yang boleh memanggil fungsi dan caranya.
Memahami keterlihatan amat penting untuk keselamatan dan reka bentuk kontrak yang betul. Terdapat empat jenis: public, external, internal dan private.
Fungsi Awam: Terbuka untuk Semua
Fungsi public paling mudah diakses. Fungsi ini boleh dipanggil:
- Dari luar kontrak (oleh pengguna atau kontrak lain).
- Dari dalam kontrak (oleh fungsi lain dalam kontrak yang sama).
Jika Anda tidak menetapkan keterlihatan, fungsi secara lalai ialah public. Amalan yang baik ialah sentiasa menetapkannya secara jelas.
Fungsi Awam dalam Tindakan
Di sini, setValue dan getValue kedua-duanya bersifat awam. Anda boleh memanggilnya secara terus daripada akaun luaran atau kontrak lain.
Jalankan contoh ini dan cuba panggil kedua-dua fungsi selepas membuat penggunaan.
pragma solidity ^0.8.0;
contract PublicExample {
uint public myValue;
function setValue(uint _newValue) public {
myValue = _newValue;
}
function getValue() public view returns (uint) {
return myValue;
}
}Fungsi Luaran: Panggilan Luaran Sahaja
Fungsi external hanya boleh dipanggil dari luar kontrak. Fungsi ini tidak boleh dipanggil secara dalaman oleh fungsi lain dalam kontrak yang sama.
Fungsi ini sering digunakan sebagai titik masuk untuk interaksi luaran. Fungsi ini juga lebih menjimatkan gas apabila menerima tatasusunan data yang besar.
Contoh Fungsi Luaran
Perhatikan bahawa onlyExternal hanya boleh dipanggil dari luar. Jika fungsi lain di dalam ExternalExample cuba memanggilnya, ralat penyusunan akan berlaku.
Jalankan contoh ini untuk melihat interaksi luaran tersebut.
pragma solidity ^0.8.0;
contract ExternalExample {
uint public count = 0;
function incrementExternal() external {
count++;
}
// This function can't call incrementExternal() directly.
// Try adding 'incrementExternal();' inside this function to see the error.
function getCount() public view returns (uint) {
return count;
}
}Dalaman & Persendirian: Untuk Kegunaan Dalaman
Fungsi internal hanya boleh dipanggil dari dalam kontrak semasa atau oleh kontrak yang mewarisinya.
Fungsi private mempunyai sekatan yang paling ketat. Fungsi ini hanya boleh dipanggil dari dalam kontrak tempat fungsi itu ditakrifkan. Malah, kontrak yang mewarisinya juga tidak boleh memanggilnya.
Fungsi ini sesuai untuk fungsi pembantu yang tidak sepatutnya didedahkan kepada pihak luaran.
Parameter & Nilai Pulangan
Fungsi boleh menerima parameter (input) dan mengembalikan nilai (output).
- Parameter ditakrifkan di dalam kurungan
(). - Jenis pulangan ditentukan menggunakan kata kunci
returns (type).
Hal ini membolehkan fungsi bersifat dinamik dan memproses data yang berbeza.
Semakan Keterlihatan Fungsi
Antara pengubah keterlihatan fungsi berikut, yang manakah bermaksud fungsi hanya boleh dipanggil dari luar kontrak, tetapi TIDAK boleh dipanggil daripada fungsi lain dalam kontrak yang sama?
Imbas Kembali: Fungsi & Keterlihatan
Syabas! Anda telah mempelajari asas fungsi Solidity.
- Fungsi menyusun logik kontrak.
public: Boleh dipanggil dari mana-mana sahaja.external: Hanya boleh dipanggil dari luar.internal: Boleh dipanggil dari dalam dan oleh kontrak terbitan.private: Hanya boleh dipanggil dari dalam kontrak yang mentakrifkannya.- Fungsi boleh menerima parameter dan mengembalikan nilai.
Seterusnya, kita akan meneroka struktur data yang lebih kompleks seperti pemetaan dan tatasusunan dinamik!
Pelajari Kontrak Pintar Rantaian Blok dengan Solidity dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 12
- Pelajaran
- 48
Soalan Lazim
Adakah pelajaran “Fungsi dan Pengubah Keterlihatan” percuma?
Ya — teks penuh “Fungsi dan Pengubah Keterlihatan” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Kontrak Pintar Rantaian Blok dengan Solidity, tingkat taraf kepada CoddyKit PRO. Kursus Kontrak Pintar Rantaian Blok dengan Solidity merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Fungsi dan Pengubah Keterlihatan”?
Fahami cara mentakrifkan fungsi, mengurus keterlihatannya (public, private, internal, external) serta mengendalikan parameter dan nilai pulangan fungsi. Anda berlatih Kontrak Pintar Rantaian Blok dengan Solidity menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Kontrak Pintar Rantaian Blok dengan Solidity?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Kontrak Pintar Rantaian Blok dengan Solidity di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.
Berapa lamakah pelajaran “Fungsi dan Pengubah Keterlihatan” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Kontrak Pintar Rantaian Blok dengan Solidity ini?
Ya. Setiap pelajaran Kontrak Pintar Rantaian Blok dengan Solidity menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Jenis Data dan Pemboleh Ubah Solidity
- Struktur Kawalan dan Gelung
- Fungsi dan Pengubah Keterlihatan
- Struktur dan Enum