📜  如何计算 Golang 切片中存在的特定字符?

📅  最后修改于: 2021-10-24 13:26:10             🧑  作者: Mango

在 Go 语言中切片比数组更强大、灵活、方便,是一种轻量级的数据结构。切片是一个可变长度的序列,用于存储相似类型的元素,不允许在同一个切片中存储不同类型的元素。
在 Go 字节切片中,您可以在Count函数的帮助下计算其中存在的元素。此函数返回给定切片中可用的元素总数或某些指定元素的总数。此函数定义在 bytes 包下,因此您必须在程序中导入 bytes 包才能访问 Count函数。

句法:

func Count(slice_1, sep_slice []byte) int

如果sep_slice是空切片,则此函数返回 1 + slice_1 中存在的 UTF-8 编码代码点的数量

例子:

// Go program to illustrate how to
// count the elements of the slice
package main
  
import (
    "bytes"
    "fmt"
)
  
func main() {
  
    // Creating and initializing 
    // slices of bytes
    // Using shorthand declaration
    slice_1 := []byte{'A', 'N', 'M',
            'A', 'P', 'A', 'A', 'W'}
      
    slice_2 := []byte{'g', 'e', 'e', 'k', 's'}
  
    // Counting elements in the given slices
    // Using Count function
    res1 := bytes.Count(slice_1, []byte{'A'})
    res2 := bytes.Count(slice_2, []byte{'e'})
    res3 := bytes.Count([]byte("GeeksforGeeks"), []byte("ks"))
    res4 := bytes.Count([]byte("Geeks"), []byte(""))
    res5 := bytes.Count(slice_1, []byte(""))
  
    // Displaying results
    fmt.Println("Result 1:", res1)
    fmt.Println("Result 2:", res2)
    fmt.Println("Result 3:", res3)
    fmt.Println("Result 4:", res4)
    fmt.Println("Result 5:", res5)
  
}

输出:

Result 1: 4
Result 2: 2
Result 3: 2
Result 4: 6
Result 5: 9