我试图将以下Python代码翻译为Go
import random
list = [i for i in range(1, 25)] random.shuffle(list) print(list) 但是发现我的Go版本冗长而笨拙,因为没有shuffle函数,我不得不实现接口和转换类型。
什么是我的代码的惯用Go版本? 问题来源于stack overflow
由于列表只是1到25之间的整数,因此可以使用Perm:
list := rand.Perm(25) for i, _ := range list { list[i]++ } 请注意,使用由给定的置换rand.Perm是重新排列任何数组的有效方法。
dest := make([]int, len(src)) perm := rand.Perm(len(src)) for i, v := range perm { dest[v] = src[i] }
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。