当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


GO Shuffle用法及代码示例


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

相关用法


注:本文由纯净天空筛选整理自golang.google.cn大神的英文原创作品 Shuffle。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。