在 Go 语言中切片比数组更强大、灵活、方便,是一种轻量级的数据结构。切片是一个可变长度的序列,用于存储相似类型的元素,不允许在同一个切片中存储不同类型的元素。
在 Go 字节切片中,您可以在Repeat()函数的帮助下将切片的元素重复特定次数。此方法返回一个新字符串,其中包含切片的重复元素。它是在 bytes 包下定义的,因此您必须在程序中导入 bytes 包才能访问 Repeat函数。
句法:
func Repeat(slice_1 []byte, count int) []byte
这里, slice_1表示字节切片,计数值表示要重复给定slice_1元素的次数。
例子:
// Go program to illustrate how to repeat
// the elements of the slice of bytes
package main
import (
"bytes"
"fmt"
)
// Main function
func main() {
// Creating and initializing
// the slice of bytes
// Using shorthand declaration
slice_1 := []byte{'G', 'E', 'E', 'K', 'S'}
slice_2 := []byte{'A', 'P', 'P', 'L', 'E'}
// Repeating the given slice
// Using Repeat function
res1 := bytes.Repeat(slice_1, 2)
res2 := bytes.Repeat(slice_2, 4)
res3 := bytes.Repeat([]byte("Geeks"), 5)
// Display the results
fmt.Printf("Result 1: %s", res1)
fmt.Printf("\nResult 2: %s", res2)
fmt.Printf("\nResult 3: %s", res3)
}
输出:
Result 1: GEEKSGEEKS
Result 2: APPLEAPPLEAPPLEAPPLE
Result 3: GeeksGeeksGeeksGeeksGeeks
注意:如果计数的值为负或 ( len(slice_1) * count ) 的结果溢出,则此方法将发生恐慌。
例子:
// Go program to illustrate how to repeat
// the elements of the slice of bytes
package main
import (
"bytes"
"fmt"
)
// Main function
func main() {
// Creating and initializing
// the slice of bytes
// Using shorthand declaration
slice_1 := []byte{'G', 'E', 'E', 'K', 'S'}
slice_2 := []byte{'A', 'P', 'P', 'L', 'E'}
// Repeating the given slice
// Using Repeat function
// If we use a negative
// value in the count
// then this function will
// panic because negative
// values are not allowed to count
res1 := bytes.Repeat(slice_1, -2)
res2 := bytes.Repeat(slice_2, -4)
res3 := bytes.Repeat([]byte("Geeks"), -5)
// Display the results
fmt.Printf("Result 1: %s", res1)
fmt.Printf("\nResult 2: %s", res2)
fmt.Printf("\nResult 3: %s", res3)
}
输出:
panic: bytes: negative Repeat count
goroutine 1 [running]:
bytes.Repeat(0x41a787, 0x5, 0x5, 0xfffffffe, 0x66ec0, 0x3f37, 0xf0a40, 0x40a0d0)
/usr/local/go/src/bytes/bytes.go:485 +0x1a0
main.main()
/tmp/sandbox192154574/prog.go:22 +0x80