面试题答案
一键面试package main
import (
"fmt"
)
// 定义接口ResultGetter
type ResultGetter interface {
GetResult() []interface{}
}
// 定义自定义结构体
type CustomStruct struct {
Message string
}
// 实现ComplexCalculator结构体并实现ResultGetter接口
type ComplexCalculator struct{}
func (cc ComplexCalculator) GetResult() []interface{} {
return []interface{}{
10, // 整数
"Hello", // 字符串
CustomStruct{Message: "Custom Data"}, // 自定义结构体
}
}
// 定义ProcessResults函数
func ProcessResults(rg ResultGetter) {
results := rg.GetResult()
for _, result := range results {
switch v := result.(type) {
case int:
fmt.Printf("处理整数: %d\n", v)
case string:
fmt.Printf("处理字符串: %s\n", v)
case CustomStruct:
fmt.Printf("处理自定义结构体: %+v\n", v)
default:
fmt.Printf("不支持的类型: %T\n", v)
}
}
}
你可以使用以下方式调用:
func main() {
cc := ComplexCalculator{}
ProcessResults(cc)
}