Rumah >pembangunan bahagian belakang >Golang >Apakah perbezaan antara fungsi dan kaedah golang?
Fungsi dan kaedah ialah dua cara untuk menentukan blok kod dalam Go. Skop fungsi ialah global atau pakej peribadi, dan skop kaedah ialah jenis peribadi. Fungsi tidak mempunyai parameter penerima, manakala kaedah mempunyai parameter penerima yang menyediakan akses kepada ahli jenis. Kes praktikal menunjukkan fungsi pengiraan purata tanpa menggunakan struktur, dan kaedah pengiraan purata berwajaran menggunakan struktur.
Perbezaan antara fungsi dan kaedah dalam Go
Pengenalan
Dalam bahasa Go, fungsi dan kaedah ialah dua cara untuk menentukan blok kod. Walaupun terdapat banyak persamaan, mereka juga mempunyai perbezaan asas. Artikel ini akan menyelami perbezaan antara fungsi dan kaedah dalam Go dan memberikan contoh praktikal.
Fungsi
Fungsi ialah blok kod bebas jenis yang melakukan beberapa operasi pada input dan mengembalikan output. Fungsi ditakrifkan menggunakan kata kunci func
, diikuti dengan nama fungsi, senarai parameter dan jenis nilai pulangan. func
关键字定义,后面跟着函数名、参数列表和返回值类型。
示例:
func sum(a, b int) int { return a + b }
调用函数:
result := sum(10, 20)
方法
方法是附加到类型上的函数。它允许该类型的实例访问和操作该方法的实现。方法使用接收器参数定义,后面跟着方法名、参数列表和返回值类型。
示例:
type Person struct { Name string } func (p Person) Greet() string { return "Hello, " + p.Name + "!" }
调用方法:
p := Person{"John"} greeting := p.Greet()
差异
特性 | 函数 | 方法 |
---|---|---|
定义 | func |
afbca75a3c4bea07d39946edd0d57a61 a4e733488ff4d79deacc65b80d12a259 |
func Avg(numbers []float64) float64 { sum := 0.0 for _, num := range numbers { sum += num } return sum / float64(len(numbers)) } |
Memanggil fungsi: | type WeightedAvg struct { Numbers []float64 Weights []float64 } func (w WeightedAvg) Avg() float64 { weightedSum := 0.0 for i := range w.Numbers { weightedSum += w.Numbers[i] * w.Weights[i] } totalWeight := 0.0 for _, w := range w.Weights { totalWeight += w } return weightedSum / totalWeight } |
Kaedah ialah fungsi yang dilampirkan pada jenis. Ia membenarkan contoh jenis untuk mengakses dan memanipulasi pelaksanaan kaedah. Kaedah ditakrifkan menggunakan parameter penerima, diikuti dengan nama kaedah, senarai parameter, dan jenis nilai pulangan. . th> th> | Definisi | |
Global, pakej peribadi |
parameter penerima
tiada ya
ahli jenis akses tidak
tidak
Atas ialah kandungan terperinci Apakah perbezaan antara fungsi dan kaedah golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!