Rumah > pembangunan bahagian belakang > Golang > Bagaimana anda menentukan dan memanggil fungsi di Go?

Bagaimana anda menentukan dan memanggil fungsi di Go?

Johnathan Smith
Lepaskan: 2025-03-19 14:41:29
asal
666 orang telah melayarinya

Bagaimana anda menentukan dan memanggil fungsi di Go?

Di GO, fungsi ditakrifkan menggunakan kata kunci func yang diikuti dengan nama fungsi dan satu set kurungan yang mengandungi senarai parameter. Badan fungsi disertakan dalam pendakap keriting {} . Berikut adalah contoh asas definisi fungsi:

 <code class="go">func add(a int, b int) int { return ab }</code>
Salin selepas log masuk

Dalam contoh ini, add adalah fungsi yang mengambil dua parameter jenis int dan mengembalikan int .

Untuk memanggil fungsi di GO, anda hanya menggunakan nama fungsi yang diikuti oleh argumen dalam kurungan. Contohnya:

 <code class="go">result := add(3, 4) fmt.Println(result) // Output: 7</code>
Salin selepas log masuk

Di sini, add fungsi dipanggil dengan Argumen 3 dan 4 , dan hasilnya disimpan dalam pemboleh ubah result .

Apakah amalan terbaik untuk menamakan fungsi di GO?

Dalam GO, penamaan fungsi mengikuti konvensyen tertentu untuk mengekalkan kebolehbacaan dan konsistensi. Berikut adalah beberapa amalan terbaik:

  1. Gunakan MixedCaps untuk Nama Fungsi : Go menggunakan topi campuran (juga dikenali sebagai kes unta) untuk nama fungsi. Surat pertama nama fungsi adalah huruf kecil, dan setiap perkataan berikutnya bermula dengan huruf besar. Sebagai contoh, calculateAverage .
  2. Jadilah deskriptif : Nama fungsi harus jelas menunjukkan tujuan mereka. Fungsi yang mengira purata senarai nombor mungkin dinamakan calculateAverage dan bukannya sesuatu yang cryptic seperti calcAvg .
  3. Elakkan singkatan : Kecuali singkatannya diiktiraf secara meluas dan digunakan dalam komuniti Go, lebih baik menggunakan kata -kata penuh. Sebagai contoh, calculate lebih disukai daripada calc .
  4. Fungsi yang dieksport : Di Go, jika nama fungsi bermula dengan huruf besar, ia dieksport dan boleh digunakan oleh pakej lain. Sebagai contoh, Add dieksport, sementara add tidak.
  5. Konsistensi : Mengekalkan konsistensi dengan konvensyen penamaan yang digunakan di seluruh asas kod atau perpustakaan standard.

Bagaimanakah anda boleh lulus argumen ke fungsi dalam GO, dan apakah perbezaan di antara mereka?

Di Go, anda boleh lulus argumen ke fungsi menggunakan kaedah yang berbeza, masing -masing dengan ciri -cirinya sendiri:

  1. Parameter nilai : Cara lalai untuk lulus argumen dalam GO adalah dengan nilai. Apabila anda lulus argumen dengan nilai, satu salinan nilai dibuat dan diserahkan kepada fungsi tersebut. Perubahan kepada parameter di dalam fungsi tidak menjejaskan nilai asal di luar fungsi.

     <code class="go">func incrementByValue(x int) { x } a := 1 incrementByValue(a) fmt.Println(a) // Output: 1 (a remains unchanged)</code>
    Salin selepas log masuk
  2. Parameter Pointer : Anda boleh lulus penunjuk ke nilai. Ini membolehkan fungsi mengubahsuai nilai asal.

     <code class="go">func incrementByPointer(x *int) { (*x) } a := 1 incrementByPointer(&a) fmt.Println(a) // Output: 2 (a is modified)</code>
    Salin selepas log masuk
  3. Parameter Variadik : Go menyokong fungsi variadik, yang boleh menerima bilangan argumen yang tidak terbatas dari jenis yang sama. Parameter variadik dilambangkan oleh ... sebelum jenis.

     <code class="go">func sum(numbers ...int) int { total := 0 for _, num := range numbers { total = num } return total } fmt.Println(sum(1, 2, 3, 4)) // Output: 10</code>
    Salin selepas log masuk

Apakah kepentingan nilai pulangan dalam fungsi GO, dan bagaimana mereka dikendalikan?

Nilai pulangan dalam fungsi GO memainkan peranan penting dalam membolehkan fungsi untuk menyampaikan hasil kembali kepada pemanggil. Berikut adalah perkara penting mengenai nilai pulangan dalam perjalanan:

  1. Nilai pulangan tunggal : Fungsi boleh mengembalikan satu nilai. Jenis pulangan ditentukan selepas senarai parameter.

     <code class="go">func square(x int) int { return x * x }</code>
    Salin selepas log masuk
  2. Nilai pulangan berganda : GO membolehkan fungsi untuk mengembalikan pelbagai nilai. Ini berguna untuk mengembalikan kedua -dua hasil dan ralat.

     <code class="go">func divide(a, b float64) (float64, error) { if b == 0 { return 0, errors.New("division by zero") } return a / b, nil } result, err := divide(10, 2) if err != nil { fmt.Println(err) } else { fmt.Println(result) // Output: 5 }</code>
    Salin selepas log masuk
  3. Dinamakan Nilai Pulangan : Go menyokong nilai pulangan yang dinamakan, yang boleh menjadikan kod itu lebih mudah dibaca. Nilai pulangan yang dinamakan diisytiharkan sebagai sebahagian daripada tandatangan fungsi.

     <code class="go">func namedReturn(x int) (result int) { result = x * x return }</code>
    Salin selepas log masuk
  4. Pulangan Bare : Apabila menggunakan nilai pulangan yang dinamakan, GO membolehkan penggunaan pernyataan return terdedah, yang mengembalikan nilai pulangan yang dinamakan.

     <code class="go">func namedReturnWithBareReturn(x int) (result int) { result = x * x return // equivalent to return result }</code>
    Salin selepas log masuk

Nilai pulangan adalah penting untuk pengendalian ralat, yang membolehkan fungsi mengembalikan kedua -dua hasil dan status ralat, yang merupakan corak yang sama dalam pengaturcaraan GO.

Atas ialah kandungan terperinci Bagaimana anda menentukan dan memanggil fungsi di Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan