Go语言函数返回值的灵活运用:巧妙应对类型差异
在Go语言编程中,灵活运用函数返回值能显著提升代码的可读性和效率。本文将针对Go函数返回值类型不一致的问题,探讨一种优雅的解决方案。
问题:设计一个名为object的函数,根据输入参数id返回不同类型的结构体指针(a和b为自定义结构体)。 调用object(1)期望返回*a类型,object(2)期望返回*b类型,且避免使用interface{}导致类型信息丢失。
现有代码(存在问题):
立即学习“go语言免费学习笔记(深入)”;
type a struct{}type b struct{}func object(id int) (g *struct{}) { if id == 1 { return &a{} // 修正:返回指针 } if id == 2 { return &b{} // 修正:返回指针 } return nil}
登录后复制
本文来自互联网或AI生成,不代表软件指南立场。本站不负任何法律责任。