go模块strconv、rand

strconv模块

1. 将123转成转成字符串的"123"
	b:=strconv.Itoa(123)
    res:=fmt.Sprintf("%d",123)
    res:=strconv.FormatInt(68,10)
2. 将字符串的"123"转成123
	a := "123"
	res,e:=strconv.Atoi(a)
	if e!=nil{
		fmt.Println("出错了",e)
	}
	fmt.Println(res)
3.将字符"false"转成 bool的false
	a:="false"
	res,e:=strconv.ParseBool(a)

math/rand模块

1.rand.Intn(5) //  随机生成[0,5)的整数
for i :=0;i<4;i++{
		fmt.Println(rand.Intn(5))
	}   // 每次生成的都一样  加一个随机种子

rand.Seed(time.Now().UnixNano())
	for i :=0;i<4;i++{
		fmt.Println(rand.Intn(5))
	}    //加一个种子
2.
675243018718 res: 78
num: 8256996710297548238 res: 101

go 语言睡眠排序

// 
wg:=sync.WaitGroup{}
a:=[]int {1,2,5,3,4,2,7,8,15,15,15,16,16,17}  //要排序的
res:=len(a)  // 多长
wg.Add(res) // 等待多少个任务
c:= make(chan int ,res)  
for _,val := range a {
    go sleep(val,c,&wg)   // 
}
wg.Wait()  
a1:=make([]int,0)
close(c)   // 先关闭再取出来
for i:= range c{
    a1=append(a1, i)
}
fmt.Println(a1)
// 睡眠i秒 放到chan中,这样睡的时间短的,先放进去,就有序了
func sleep(i int,c chan int,wg *sync.WaitGroup)  {
	defer wg.Done()
	time.Sleep(time.Duration(i)*time.Second)
	c<-i
}

 

posted @ 2021-04-07 22:59  我也想18岁  阅读(71)  评论(0编辑  收藏  举报