如何定义 Golang 中实现了接口的类?
如何定义实现了接口的类?
在 Go 中,实现接口类似于 Java 中的实现接口。您可以使用 implements 关键字来定义一个实现了特定接口的类。
语法:
type 你的类型名称 implements 接口名称
示例:
package main import "fmt" // 定义一个接口 type Speaker interface { Speak() } // 定义一个实现了 Speaker 接口的类 type Person struct { name string } func (p *Person) Speak() { fmt.Printf("Hello, my name is %s!\n", p.name) } func main() { // 创建一个实现了 Speaker 接口的对象 john := &Person{name: "John"} // 调用实现的方法 john.Speak() }
实战案例:
假设您想根据给定的 ID 获取一个用户。您可以在实现 Repository 接口的 UserRepository 中定义一个 GetUser 方法来实现这一目标。
package main import ( "context" "fmt" ) // 定义一个 Repository 接口 type Repository interface { GetUser(ctx context.Context, id int) (*User, error) } // 定义实现了 Repository 接口的 UserRepository type UserRepository struct{} func (r *UserRepository) GetUser(ctx context.Context, id int) (*User, error) { // 实际实现逻辑 fmt.Printf("Getting user with ID: %d\n", id) return &User{ID: id, Name: "John"}, nil } // 定义一个 User 结构体 type User struct { ID int Name string } func main() { // 创建一个 UserRepository 对象 repo := &UserRepository{} // 调用实现的方法 user, err := repo.GetUser(context.Background(), 1) if err != nil { fmt.Println(err) return } fmt.Println(user) }
以上就是如何定义 Golang 中实现了接口的类?的详细内容,更多请关注其它相关文章!