如何获取 Go 切片中有效元素的个数?

如何获取 go 切片中有效元素的个数?

go 切片有效元素的确定

在 go 中,切片元素有效与否受切片容量的影响。如果代码中使用的 make([]abc, 5, 10) 初始化切片,这意味着该切片的容量为 10,即可以容纳 10 个元素。而该代码实际添加了 2 个元素。

此问题在于,使用 len() 方法获取的长度包括所有分配给切片的内存空间,包括未赋值的 nil 元素。这会导致 len() 方法返回 7,而不是实际有效的元素数 2。

要获取有效元素的数量,方法之一是遍历切片并计算非空元素的个数。例如:

func main() {
    tslice := make([]abc, 5, 10)
    tslice = append(tslice, "测试数组", "第二个值")

    count := 0
    for _, val := range tslice {
        if val != "" {
            count++
        }
    }

    fmt.Printf("有效元素的数量:%d
", count)
}

以上代码遍历切片并检查每个元素是否非空。如果非空,则增加 count 计数器,最终输出有效元素的数量为 2。

以上就是如何获取 Go 切片中有效元素的个数?的详细内容,更多请关注www.sxiaw.com其它相关文章!