GO语言"math/rand"包中"Shuffle"函数的用法及代码示例。
用法:
func Shuffle(n int, swap func(i, j int))
使用默认 Source Shuffle[洗牌] pseudo-randomizes 元素的顺序。 n 是元素的数量。如果 n < 0,则 Shuffle Panics。swap 交换索引为 i 和 j 的元素。
例子:
package main
import (
"fmt"
"math/rand"
"strings"
)
func main() {
words := strings.Fields("ink runs from the corners of my mouth")
rand.Shuffle(len(words), func(i, j int) {
words[i], words[j] = words[j], words[i]
})
fmt.Println(words)
}
输出:
[mouth my the of runs corners from ink]
示例(SlicesInUnison):
package main
import (
"fmt"
"math/rand"
)
func main() {
numbers := []byte("12345")
letters := []byte("ABCDE")
// Shuffle numbers, swapping corresponding entries in letters at the same time.
rand.Shuffle(len(numbers), func(i, j int) {
numbers[i], numbers[j] = numbers[j], numbers[i]
letters[i], letters[j] = letters[j], letters[i]
})
for i := range numbers {
fmt.Printf("%c: %c\n", letters[i], numbers[i])
}
}
输出:
C: 3 D: 4 A: 1 E: 5 B: 2
相关用法
- GO Scanner.Scan用法及代码示例
- GO StreamWriter用法及代码示例
- GO Split用法及代码示例
- GO Server.Shutdown用法及代码示例
- GO Slice用法及代码示例
- GO StructTag.Lookup用法及代码示例
- GO SplitAfter用法及代码示例
- GO Sum256用法及代码示例
- GO SectionReader用法及代码示例
- GO Sin用法及代码示例
- GO Sprintf用法及代码示例
- GO Strings用法及代码示例
- GO SendMail用法及代码示例
- GO StructTag用法及代码示例
- GO Stmt用法及代码示例
- GO Sprint用法及代码示例
- GO SpecialCase用法及代码示例
- GO SectionReader.ReadAt用法及代码示例
- GO StructOf用法及代码示例
- GO Sscanf用法及代码示例
注:本文由纯净天空筛选整理自golang.google.cn大神的英文原创作品 Shuffle。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。