面试题答案
一键面试在Go语言中,可以通过接口实现不同协程间的数据交互与协作。一般步骤如下:
- 定义接口,明确交互的方法。
- 实现接口的结构体。
- 在不同协程中使用接口类型的变量来交互。
以下是一个简单的代码示例:
package main
import (
"fmt"
)
// 定义接口
type DataHandler interface {
HandleData(data int)
}
// 实现接口的结构体
type DataProcessor struct{}
func (dp *DataProcessor) HandleData(data int) {
fmt.Printf("处理数据: %d\n", data)
}
func main() {
var dh DataHandler
dh = &DataProcessor{}
// 启动一个协程
go func() {
for i := 0; i < 5; i++ {
dh.HandleData(i)
}
}()
// 主线程等待一段时间,确保协程有机会执行
select {}
}
在上述代码中:
- 首先定义了
DataHandler
接口,包含HandleData
方法。 - 然后创建了
DataProcessor
结构体并实现了DataHandler
接口的HandleData
方法。 - 在
main
函数中,创建了DataProcessor
实例并赋值给接口类型变量dh
。 - 启动一个协程,在协程中调用接口的
HandleData
方法来处理数据。
这样就通过接口实现了不同协程间简单的数据交互与协作。