
Go
望长安于日下
静以修身
展开
-
go数据结构01-稀疏数组
package mainimport "fmt"type ValNode struct { //创建稀疏数组 row int col int val int}func main() { //fmt.Println("hello") //创建一个数组 var chessMap [11][11]int //fmt.Println(chess) chessMap[1][3] = 1 //黑子 chessMap[2][4] = 2 //白字 //1、遍历棋盘 for _, v1.原创 2020-07-19 11:47:00 · 139 阅读 · 0 评论 -
go语言的下载安装以及包的更新
GoggleLanguagevscode网路无法更新更新的解决方式vscode网路无法更新更新的解决方式登录go proxy在cmd的控制窗口输入即可,版本需要1.13及以上,版本查看方式go version$ go env -w GO111MODULE=on$ go env -w GOPROXY=https://goproxy.cn,direct...原创 2020-07-13 19:37:23 · 786 阅读 · 0 评论 -
使用defer和recover()组合输出错误信息防止报错中断
程序报错时候会使得程序中断,尤其是使用协程运行时。如果一个协程报错时,不希望程序中断影响其他的协程,就可以使用defer和recover()组合输出错误信息防止报错中断package mainimport ( "fmt" "time")func sayHello() { for i := 0; i < 4; i++ { time.Sleep(time.Second) fmt.Println("helloworld") }}func test() { defer fu原创 2020-07-14 19:59:46 · 370 阅读 · 0 评论 -
使用协程VS不使用协程运行程序时间对比
从80000个数中取出素数,从结果中可以看出不使用协程用的时间是使用协程用时的8倍!!!package mainimport ( "fmt" "time")//将数写入管道中func getNums(getNum chan int) { for i := 2; i < 80000; i++ { getNum <- i } close(getNum)}//将管道中的数取出来,判断是否是素数,是的话放入新的管道中func prineNums(getNum chan原创 2020-07-14 18:06:45 · 312 阅读 · 0 评论 -
使用gorutine和channels通过四个协程进行素数的判断取值打印
package mainimport "fmt"//将数写入管道中func getNums(getNum chan int) { for i := 2; i < 200; i++ { getNum <- i } close(getNum)}//将管道中的数取出来,判断是否是素数,是的话放入新的管道中func prineNums(getNum chan int, primeNum chan int, exitStat chan bool) { //通过死循环取数 f原创 2020-07-14 17:18:19 · 253 阅读 · 0 评论 -
go协程、管道
请感受一下协程的强大,使用了管道序列package mainimport ( "fmt" "time")//创建一个管道,用于写入数据func writeChantest(writeChan chan int) { for i := 0; i < 20; i++ { writeChan <- i fmt.Println("写入数据=", i) time.Sleep(time.Second) } close(writeChan)}//创建管道,用于读取数据原创 2020-07-14 15:02:45 · 250 阅读 · 0 评论 -
内存溢出
举例使用一个map来存储数据,当定义map的数据类型时,就定义了这个内存瓶子的容量了,当要存储的数据大于内存瓶子的容量时,就会导致内除溢出(数据内存太大装不下去了)package mianimport("fmt")var myMap = make(map[int]int, 10) //10个坑位func Test(n int) { res := 1 for i := 1; i < n; i++ { res *= i } myMap[n] = res}func main()原创 2020-07-14 11:21:12 · 124 阅读 · 0 评论