发布时间:2024-11-22 00:19:38
```go type Person struct { Name string Age int } ```
上述代码定义了一个名为Person的结构体,包含了Name和Age两个字段。我们可以使用如下方式创建一个Person对象:```go p := Person{Name: "Alice", Age: 20} ```
可以通过.操作符访问结构体中的字段:```go fmt.Printf("Name: %s, Age: %d\n", p.Name, p.Age) ```
输出结果为:`Name: Alice, Age: 20`。```go type Person interface { GetName() string GetAge() int } type Student struct { Name string Age int } func (s Student) GetName() string { return s.Name } func (s Student) GetAge() int { return s.Age } func main() { var p Person = Student{Name: "Bob", Age: 18} fmt.Println(p.GetName(), p.GetAge()) } ```
上述代码中,我们定义了一个名为Person的接口,该接口包含了两个方法:GetName和GetAge。然后,我们创建了一个名为Student的结构体,并实现了Person接口中的方法。最后,我们可以将Student对象赋值给接口类型的变量,并调用接口方法。 上述示例中,通过将Student结构体嵌入Person接口,我们成功地将一个结构体类型转化为接口类型。通过这种方式,我们可以更加灵活地使用和传递不同类型的结构体对象。