Go Academy · Pelajaran

Asas Fungsi dan Tandatangan

Parameter, jenis pulangan dan konvensyen panggilan

Pelajaran 1 daripada 412 langkah

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)) // 10

Jenis 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 MixedCaps untuk fungsi dieksport atau mixedCaps untuk fungsi yang tidak dieksport
  • Gunakan nama pendek yang berorientasikan tindakan: New, Get, Parse, Write
  • Elakkan GetX untuk pengambil nilai mudah — gunakan sahaja X
  • 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.

Percuma untuk bermula

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

  1. Asas Fungsi dan Tandatangan
  2. Pelbagai Nilai Pulangan
  3. Fungsi Variadik
  4. defer, Fungsi Tanpa Nama dan Closure
← Kembali ke Go Academy