使用go语言切片中有重复元素,如何根据元素的名称获取总共出现的次数
时间: 2024-03-06 09:50:55 浏览: 19
在 Go 语言中,可以使用 map 类型来实现统计元素出现次数的功能。具体代码如下:
```go
package main
import "fmt"
func countSlice(s []string) map[string]int {
counts := make(map[string]int)
for _, str := range s {
counts[str]++
}
return counts
}
func main() {
mySlice := []string{"apple", "banana", "orange", "apple", "apple", "orange", "pear"}
counts := countSlice(mySlice)
fmt.Println(counts["apple"]) // 输出3,即'apple'在切片中出现了3次
fmt.Println(counts["orange"]) // 输出2,即'orange'在切片中出现了2次
fmt.Println(counts["banana"]) // 输出1,即'banana'在切片中出现了1次
fmt.Println(counts["pear"]) // 输出1,即'pear'在切片中出现了1次
}
```
在上述代码中,首先定义了一个函数 countSlice,该函数接收一个字符串切片作为参数,返回一个 map 类型的元素出现次数统计结果。在函数中,我们遍历切片中的每个元素,使用 map 类型来存储每个元素出现的次数。最后返回统计结果。
在 main 函数中,我们定义了一个字符串切片 mySlice,然后调用 countSlice 函数来统计每个元素出现的次数,并输出指定元素的出现次数。