Rumah > Artikel > pembangunan bahagian belakang > Fungsi golang terlebih beban dan polimorfisme
Bahasa Go tidak menyokong lebihan fungsi, tetapi polimorfisme dicapai melalui antara muka. Antara muka mentakrifkan kaedah yang mesti dilaksanakan oleh jenis yang melaksanakan antara muka, membenarkan jenis antara muka yang sama digunakan untuk mewakili jenis objek yang berbeza dan melaksanakan gelagat yang berbeza. . kuantiti dan pesanan) adalah berbeza. Bahasa Go tidak menyokong lebihan fungsi dalam erti kata tradisional.
Polymorphism
Polymorphism membenarkan penggunaan jenis antara muka yang sama untuk mewakili jenis objek yang berbeza, dengan itu mencapai gelagat yang berbeza. Bahasa Go melaksanakan polimorfisme melalui antara muka. Antara muka mentakrifkan satu set kaedah yang mesti dilaksanakan oleh jenis yang melaksanakan antara muka.
Kes praktikal
Berikut ialah contoh penggunaan antara muka untuk mencapai polimorfisme:// Shape 接口定义了形状的基本操作 type Shape interface { Area() float64 Perimeter() float64 } // Circle 结构体实现了 Shape 接口 type Circle struct { Radius float64 } func (c Circle) Area() float64 { return math.Pi * c.Radius * c.Radius } func (c Circle) Perimeter() float64 { return 2 * math.Pi * c.Radius } // Square 结构体实现了 Shape 接口 type Square struct { Side float64 } func (s Square) Area() float64 { return s.Side * s.Side } func (s Square) Perimeter() float64 { return 4 * s.Side } // 计算不同形状的面积和周长 func CalculateShape(s Shape) { fmt.Println("面积:", s.Area()) fmt.Println("周长:", s.Perimeter()) } func main() { circle := Circle{Radius: 5.0} square := Square{Side: 3.0} // 使用相同的 CalculateShape 函数计算不同形状的面积和周长 CalculateShape(circle) CalculateShape(square) }Dalam contoh ini,
mengambil parameter jenis antara muka dan mengira luas dan perimeternya, dengan itu mencapai polimorfisme.
Atas ialah kandungan terperinci Fungsi golang terlebih beban dan polimorfisme. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!