首页 技术 正文
技术 2022年11月9日
0 收藏 944 点赞 4,998 浏览 1336 个字

最近在学go, 按照入门指南学完go的基础语法, 开始学习go的标准库;  借用生成这个小任务复习一下go的基础语法.

推荐go编辑, jb公司的goland, 超级好用.

推荐go入门指南, https://tour.go-zh.org/list

package mainimport (    "fmt"    "math/rand"    "sync")func main() {    //fmt.Println("random: ", rand.Intn(100))    res := Example(, )    ; i<len(res); i++ {        fmt.Println(i+,res[i])    }}/**len: 长度max: 个数随机生成长度为len的max个纯数字随机数 */func Example(length int, max int) []string{    // Seeding with the same value results in the same random sequence each run.    // For different numbers, seed with a different value, such as    // time.Now().UnixNano(), which yields a constantly-changing number.    //rand.Seed(42)    digitNumber := []string {        ",        ",        ",        ",        ",        ",        ",        ",        ",        ",    }    // 用make创建map    set := New()    for ; set.Len() < max ;  {        ranNumber := ""        ; j<length; j++ {            ranNumber += digitNumber[rand.Intn(len(digitNumber))]        }        if !set.Has(ranNumber){            set.Add(ranNumber)        }    }    return set.List()}/**构造set类型 */type Set struct {    m map[string]bool    sync.RWMutex}func New() *Set {    return &Set{        m: map[string]bool{},    }}func (s *Set) Add(item string) {    s.Lock()    defer s.Unlock()    s.m[item] = true}func (s *Set) Remove(item string) {    s.Lock()    s.Unlock()    delete(s.m, item)}func (s *Set) Has(item string) bool {    s.RLock()    defer s.RUnlock()    _, ok := s.m[item]    return ok}func (s *Set) Len() int {    return len(s.List())}func (s *Set) Clear() {    s.Lock()    defer s.Unlock()    s.m = map[string]bool{}}func (s *Set) IsEmpty() bool {     {        return true    }    return false}func (s *Set) List() []string {    s.RLock()    defer s.RUnlock()    list := []string{}    for item := range s.m {        list = append(list, item)    }    return list}
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,492
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,907
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,740
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,493
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,132
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,295