Asas Fungsi dan Tandatangan
Parameter, jenis pulangan dan konvensyen panggilan
Asas Fungsi dan Tandatangan ialah pelajaran Go Academy percuma di CoddyKit. Ini ialah pelajaran 1 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Go Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Go Academy merangkumi sejumlah 4 pelajaran.
Mentakrifkan Fungsi
Dalam Go, fungsi ditakrifkan dengan kata kunci func:
func greet(name string) string {
return "Hello, " + name
}Parameter dan Argumen
Parameter mempunyai jenis dan disenaraikan sebagai pasangan name type. Berbilang parameter daripada jenis yang sama boleh berkongsi anotasi jenis:
func add(x, y int) int {
return x + y
}
func rect(w, h float64) float64 {
return w * h
}Fungsi Tanpa Pulangan
Fungsi yang tidak mengembalikan nilai hanya mengabaikan jenis pulangan. Fungsi tersebut kembali secara tersirat apabila pelaksanaan sampai ke penghujung:
func printBanner(title string) {
fmt.Println("=====", title, "======")
}Memanggil Fungsi
Panggil fungsi mengikut namanya dengan tanda kurung dan argumen yang sepadan:
result := add(3, 4) // 7
fmt.Println(greet("Go")) // Hello, Go
printBanner("Welcome")Fungsi sebagai Nilai Kelas Pertama
Fungsi ialah nilai kelas pertama dalam Go — fungsi boleh ditugaskan kepada pemboleh ubah dan dihantar sebagai argumen:
apply := func(n int, f func(int) int) int {
return f(n)
}
double := func(n int) int { return n * 2 }
fmt.Println(apply(5, double)) // 10Jenis Fungsi
Anda boleh mentakrifkan jenis fungsi bernama untuk tandatangan yang lebih kemas:
type Transform func(int) int
func applyAll(n int, fns []Transform) int {
for _, f := range fns {
n = f(n)
}
return n
}Fungsi Rekursif
Go menyokong rekursi. Berhati-hati dengan kedalaman tindanan — tindanan goroutine Go berkembang secara dinamik, tetapi rekursi tanpa had tetap menyebabkan limpahan tindanan:
func factorial(n int) int {
if n <= 1 {
return 1
}
return n * factorial(n-1)
}Konvensyen Penamaan Fungsi
Konvensyen penamaan fungsi Go:
- Gunakan
MixedCapsuntuk fungsi dieksport ataumixedCapsuntuk fungsi yang tidak dieksport - Gunakan nama pendek yang berorientasikan tindakan:
New,Get,Parse,Write - Elakkan
GetXuntuk pengambil nilai mudah — gunakan sahajaX - Predikat boolean:
IsValid,HasPrefix
Fungsi init()
Fungsi khas init() dijalankan secara automatik apabila pakej dimuatkan, sebelum main():
- Tidak menerima argumen dan tidak mengembalikan apa-apa
- Satu pakej boleh mempunyai beberapa fungsi init()
- Gunakannya untuk persediaan sekali sahaja seperti mendaftarkan pemacu
Fungsi berbanding Kaedah
Fungsi tidak dikaitkan dengan mana-mana jenis. Kaedah mempunyai penerima, yang akan dibincangkan dalam Struktur dan Kaedah. Kedua-duanya menggunakan kata kunci func:
// Function
func max(a, b int) int { ... }
// Method
func (c Counter) Value() int { ... }Semakan Pantas
Dalam Go, bolehkah fungsi mengembalikan berbilang nilai?
Imbas Kembali: Asas Fungsi
Fungsi Go bersifat ekspresif dan fleksibel:
func name(params) returnType { }- Parameter daripada jenis yang sama boleh berkongsi anotasi jenis
- Fungsi ialah nilai kelas pertama
- Takrifkan jenis fungsi untuk tandatangan yang boleh digunakan semula
- Rekursi disokong; init() dijalankan apabila pakej dimuatkan
Seterusnya: nilai pulangan berbilang secara terperinci.
Pelajari Go 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
- 51
- Pelajaran
- 203
Soalan Lazim
Adakah pelajaran “Asas Fungsi dan Tandatangan” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Go Academy, termasuk “Asas Fungsi dan Tandatangan”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Go Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Asas Fungsi dan Tandatangan”?
Parameter, jenis pulangan dan konvensyen panggilan Anda berlatih Go Academy 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 Go Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Go Academy 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 1 daripada 4.
Berapa lamakah pelajaran “Asas Fungsi dan Tandatangan” 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 Go Academy ini?
Ya. Setiap pelajaran Go Academy 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
- Asas Fungsi dan Tandatangan
- Pelbagai Nilai Pulangan
- Fungsi Variadik
- defer, Fungsi Tanpa Nama dan Closure