确定切片内元素的位置
确定切片内元素的位置并不像看起来那么简单。这是因为 Go 缺乏用于此目的的通用库函数。
为了解决这个问题,可以创建如下所示的自定义函数:
type intSlice []int func (slice intSlice) pos(value int) int { for p, v := range slice { if (v == value) { return p } } return -1 }
此函数迭代切片使用范围并检查元素的值是否与目标值匹配。如果找到匹配项,则返回索引。
不幸的是,这种方法对于任意切片并不理想。 Go 的类型系统没有提供一种简单的机制来让函数操作不同类型的切片。
对于字节切片,可以使用 bytes.IndexByte 函数。此函数返回字节切片中第一次出现字节值的索引。
以上是如何高效找到Go Slice中元素的位置?的详细内容。更多信息请关注PHP中文网其他相关文章!