在 Go 中使用泛型确保传递的值具有特定字段
问题:
开发人员经常需要泛型函数在 Go 中接受具有特定字段的值。尽管已经尝试了各种方法,但找到可行的解决方案一直具有挑战性。
问题:
是否可以在 Go 中实现通用函数来强制某些字段的存在(例如,在不使用接口方法(例如“GetID()”的情况下传递的值上的“ID int”字段) int")?
答案:
遗憾的是,答案是否。
在 Go 1.18 版本的泛型实现中,结构类型不支持。因此,接口中的方法对于访问传递值中的公共字段是必要的。
澄清波浪号类型语法 (~T) 表示一组其基础类型恰好是 T 的类型非常重要。所以“~struct{ ID int }”不包含具有“ID int”字段和其他字段的结构。
尽管存在解决此限制的提案,但它们不会在转到 1.18。
以上是Go 泛型可以在没有接口方法的情况下强制传递值中的特定字段吗?的详细内容。更多信息请关注PHP中文网其他相关文章!