Go语言 如何将包含类型约束的接口用作泛型

r3i60tvu  于 2023-01-03  发布在  Go
关注(0)|答案(1)|浏览(108)

我想有一个带泛型的结构体切片。泛型是一个带类型约束的接口。

type constraint interface {
    int32 | uint32
}

type a[T constraint] struct {
    something T
}

type b struct {
    as []a[constraint] // doesn't work
}

如何使它可以同时使用a[int32]a[uint32]作为b.as中的元素?

hgc7kmma

hgc7kmma1#

我尝试做的事情在我提出的方法中是不可能的。这是因为a[int32]a[uint32]是不同的类型。我需要创建一个只有a实现的内部接口,并创建一个数组。

type internal interface {
    someObscureMethod()
}

func (anA a[T]) someObscureMethod() {}

type b struct {
    as []internal
}

相关问题