发布时间:2024-11-05 20:24:09
下面是一个简单的结构体例子:
type Person struct { name string age int }在上面的例子中,我们定义了一个名为`Person`的结构体,它有两个字段,分别是`name`和`age`。`name`字段的类型是`string`,`age`字段的类型是`int`。 结构体可以用于创建具有多个字段的复合数据类型。通过结构体,我们可以将相关的数据组织在一起,并对其进行操作。
下面是一个简单的接口例子:
type Shape interface { Area() float64 Perimeter() float64 }在上面的例子中,我们定义了一个名为`Shape`的接口,它有两个方法:`Area`和`Perimeter`。任何实现了这两个方法的类型都可以被视为`Shape`接口的实现者。这样,我们就可以编写适用于任何实现了`Shape`接口的类型的代码。
下面是一个展示结构体实现接口的例子:
type Rectangle struct { width float64 height float64 } func (r Rectangle) Area() float64 { return r.width * r.height } func (r Rectangle) Perimeter() float64 { return 2 * (r.width + r.height) } func main() { var shape Shape shape = Rectangle{width: 10, height: 5} fmt.Println("Area:", shape.Area()) fmt.Println("Perimeter:", shape.Perimeter()) }在上面的例子中,我们定义了一个名为`Rectangle`的结构体,它有两个字段:`width`和`height`。然后,我们为`Rectangle`结构体定义了`Area`和`Perimeter`方法,并实现了`Shape`接口。 在`main`函数中,我们创建了一个`shape`变量,并将它赋值为一个`Rectangle`类型的实例。尽管`shape`是一个`Shape`类型的变量,但它实际上引用了一个`Rectangle`类型的实例。通过调用`Area`和`Perimeter`方法,我们可以使用`shape`变量访问该实例的方法。 结构体和接口的这种关系使得我们能够以一种抽象的方式编写代码,提高了程序的灵活性和可扩展性。