分类 golang 中的文章

First_beego

使用beego创建api项目,实现增删改查,简单记录 1.mac安装beego和bee工具 1 2 go get -u github.com/beego/beego/v2 go get -u github.com/beego/bee/v2 如果需要bee设置为全局变量,添加zshrc全局alias,在~/.zshrc中编辑添加alias bee=xxx/bee beego官方文档 2.使用bee工具创建项目 1 bee api app_delivery -conn="root:root****@tcp(127.0.0.1:3306)/test-beego 创建后orm.Re……

阅读全文

golang中的map

golang中map学习 哈希表 哈希表是一个无序的key/value对的集合,其中所有的key都是不同的,然后通过给定的key可以在常数时间复杂度内检索、更新或删除对应的value; golang中的map 在Go语言中,一个map就是一个哈希表的引用,map类型可以写为map[K]V……

阅读全文

go解决leetcode-242

解决思路:使用map来解决问题; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 package main import ( "fmt" "reflect" ) func isAnagram(s string, t string) bool { // var m1 map[string]int // var m2 map[string]int //map申明后默认是nil,得用make进行实例化 m1 := make(map[string]int) m2 := make(map[string]int) for _, i := range s { m1[string(i)]++ } for _, j := range t { m2[string(j)]++ } return reflect.DeepEqual(m1, m2) //map不能直接用“==”进行比……

阅读全文

go实现单链表反转

单链表核心代码如下: 1.迭代方法: 1 2 3 4 5 6 7 8 func reverseList(node *ListNode) *ListNode { cur := node var pre *ListNode for cur != nil { cur.Next, pre, cur = pre, cur, cur.Next } return pre } 理解:cur指向当前节点,pre是前节点初始为nil,反转过程: 1 2 3 4 next := cur.next //新建一个临时节点用于保存cur.next,不然会丢失 cur.next = pre pre = cur cur = next 2.递归方式 1 2 3 4 5 6……

阅读全文

go实现选择排序

选择排序:对于给定的一组记录,经过第一轮比较之后得到最小记录,然后将该记录与第一个记录的位置进行交换;接着对对不包括第一个记录以外的其他记录进行第二轮比较,得到的最小记录与第二个记录进行位置交换;重复该过程,直到进行比较的记录只有一个为止。 具体实现如下: 1 2 3 4 5 6 7 8 9 10 11 12 13……

阅读全文

go语言中使用defer、panic、recover处理异常

go语言中的异常处理,没有try…catch等,而是使用defer、panic、recover来处理异常。 知识点:defer、panic、recover,异常处理 1、首先,panic 是用来表示非常严重的不可恢复的错误的。在Go语言中这是一个内置函数,如果在程序中遇到……

阅读全文

goroute应用-模拟远程调用RPC

在本例中,使用通道代替socket实现RPC过程,客户端和服务器运行在同一个进程,服务器和客户端在两个goroute中。 应用知识:goroute,select,RPC过程 1、客户端请求和接收封装 下面的代码封装了向服务器请求数据,等待服务器返回数据,如果请求方超时,利用select……

阅读全文

goroute之间通信-共享全局变量(理解go的多并发)

1、go语言中goroute之间通信有两种方式: 通过全局变量,这种方式得加锁 通过channel进行通信 下面是一个通过全局变量进行通信的例子: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 package main import ( "fmt" "sync" "time" ) var ( m = make(map[int]uint64) lock sync.Mutex ) type task struct { n int } func calc(t *task) { var……

阅读全文