[英]how to specify array as type constraints in golang generics?
在 generics 重写代码以减少代码重复的过程中,有一种类型期望 [N]T 作为类型约束。
是否可以在 golang 中将数组指定为类型约束? 例如,[32768]byte 或 [100]uint64。
一个相关的话题,在golang generics中是否可以指定static值约束?
您可以在类型参数约束中使用 arrays,但必须指定长度:
func foo[T ~[2]uint64]MyFunc(v T) {}
这当然不会承认,比如说, type Foo [3]uint64
作为类型参数,因为长度不同。 就像声明数组变量不允许非常量长度一样。
所以这也有效:
const length = 2
type C interface {
~[length]uint64
}
符号[...]uint64{}
仅在复合文字中可用,因此这也不是约束中的一个选项。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.