如何获取 Golang 切片中非空元素的个数?
golang 中获取切片非空元素个数
在 go 中,使用 len() 函数可以获取切片中元素的总数。但是,这对于包含空元素的切片来说并不是一个精确的表示。下面代码中,尽管切片只有两个非空元素,len() 却返回 7:
package main import "fmt" type abc string func main() { tslice := make([]abc, 5, 10) tslice = append(tslice, "测试数组", "第二个值") for _, val := range tslice { fmt.printf("结果为 %v ", val) } }
在这种情况下,无法使用内置方法直接获取非空元素的个数。解决方法是遍历切片并逐个检查元素是否为空。可以使用以下代码计算非空元素的个数:
nonEmptyCount := 0 for _, val := range tslice { if val != "" { nonEmptyCount++ } }
通过这种方法,可以在不考虑切片的初始化容量或空元素的情况下准确获取非空元素的个数。