go如何实现接口
package main import "fmt" type Shape interface { Area() float64 } type Circle struct { Radius float64 } func (c Circle) Area() float64 { return 3.14 * c.Radius * c.Radius } func main() { c := Circle{Radius: 6.2} fmt.Println(c.Area()) }
首先我们定义了一个名为
Shape
的接口,它只有一个方法Area()
,该方法返回一个float64
类型的数值,表示形状的面积。接着我们定义了一个
Circle
类型,该类型包含一个Radius
字段,表示圆形的半径。接着我们为Circle
类型实现了Shape
接口中的方法Area()
,用于计算圆形的面积。
go如何实现继承
package main import "fmt" type Person struct { Name string } func (p Person) SayHello() { fmt.Println("my name is %d",p.Name) } type Student struct { Person Grade int } func main() { s := Student{Person : Person{Name: "lisi"}, Grade : 60} s.SayHello() }
定义了两个结构体类型:
Person
和Student
。Person
结构体只有一个Name
属性和一个SayHello()
方法,用来打招呼。Student
结构体则包含了一个Person
属性和一个Grade
属性。通过在Student
结构体中嵌入Person
结构体,我们实现了对Person
中字段和方法的继承。然 Go 语言中没有传统意义上的继承机制,但是通过嵌入结构体依然可以实现代码重用和共享的功能。此外,Go 语言中还提供了接口类型和组合类型等特性,用来替代传统继承机制,并实现更灵活、可扩展的代码设计。