如何在Go中实现通用过滤方法

如何在Go中实现通用过滤方法,go,Go,作为golang的新手,我想知道如何实现Filter/Map这样的通用方法 基本上我想做的是 Filter(data []T, func (item T) { return item.xxx }) 据我所知,golang不支持generic(可能是错误的),而且还有一个 当然,我真的不想复制和粘贴来支持不同的结构 那么golang的方法是什么呢?golang的方法只是用于循环。如果您真的想这样做,那么使用它您需要使用interface{}来实现类似参数多态性的功能。当您需要类型的方面来

作为golang的新手,我想知道如何实现Filter/Map这样的通用方法

基本上我想做的是

Filter(data []T, func (item T) {
    return item.xxx
})
据我所知,golang不支持generic(可能是错误的),而且还有一个

当然,我真的不想复制和粘贴来支持不同的结构


那么golang的方法是什么呢?

golang的方法只是用于循环。如果您真的想这样做,那么使用它您需要使用
interface{}
来实现类似参数多态性的功能。当您需要类型的方面来实现“多态”函数时,您可以将类型转换为某个特定签名的接口。虽然您可以使用
reflect
软件包玩游戏来弥补它,但是您永远无法使用类型系统来准确地键入
Filter
函数。(为什么要否决?这是一个有效的问题…@BadZen Thx对于您的解决方案,它看起来更直观,是否有一个示例软件包可供我检查?我指的是参数多态性部分。golang方法只用于循环。如果您真的想这样做,那么使用它您需要使用
interface{}
来实现类似参数多态性的功能。当您需要类型的方面来实现“多态”函数时,您可以将类型转换为某个特定签名的接口。虽然您可以使用
reflect
软件包玩游戏来弥补它,但是您永远无法使用类型系统来准确地键入
Filter
函数。(为什么要否决?这是一个有效的问题…@BadZen Thx对于您的解决方案,它看起来更直观,是否有一个示例软件包可供我检查?我指的是参数多态性部分。