- 博客(45)
- 收藏
- 关注

原创 $GOPATH/go.mod exists but should not goland
$GOPATH/go.mod exists but should not1.可能是goland go modules没有配置好按下图配置setting->go->go modules配置好后先点击右下角的apply,然后再ok,不然保存不上2.也可以在电脑的环境变量处修改,如下图3.开启模块支持后,并不能与GOPATH共存,所以把项目从$GOPATH中移出即可...
2019-10-29 23:32:55
81725
8

原创 golang数组实现队列
题目描述:实现一个队列,使其具有入队列,出队列,查看队列元素等功能。队列介绍:队列是一个有序列表,可以用数组或是链表来实现。遵循先入先出的原则,即先存入队列的数据,要先取出。后存入要后取出。方法一:数组实现rear是队列最后(含最后)front是队列的最前元素(不含)代码如下:package mainimport ( "errors" "fmt" "os")//...
2019-10-24 21:59:38
1897
1
原创 gorm 自定义预加载 preload加条件
gorm 自定义预加载 preload加条件// 首页活动模块区域分类表模型type LabelType struct { Model Id int `json:"id";gorm:"primary_key"` MallId int `json:"mall_id"` Status int `json:"-"` Name string `json:"name"` Weigh
2021-07-21 14:50:33
1712
原创 Golang面试题整理
32.并发编程概念是什么?并行是指两个或者多个事件在同一时刻发生;并发是指两个或多个事件在同一时间间隔发生。并行是在不同实体上的多个事件,并发是在同一实体上的多个事件。在一台处理器上“同时”处理多个任务,在多台处理器上同时处理多个任务。如hadoop分布式集群并发偏重于多个任务交替执行,而多个任务之间有可能还是串行的。而并行是真正意义上的“同时执行”。并发编程是指在一台处理器上“同时”处理多个任务。并发是在同一实体上的多个事件。多个事件在同一时间间隔发生。并发编程的目标是充分的利用处理器的每一个核,
2020-09-14 23:13:54
1506
原创 golang面试题(带答案)
1.下面代码输出什么,为什么 //make([]T, length, capacity) s1 := []int{1, 2, 3} fmt.Println(s1, "哈哈") //[1 2 3] s2 := s1 fmt.Println(s1, "哈哈") //[1 2 3] for i := 0; i < 3; i++ { s2[i] = s2[i] + 1 } fmt.Println(s1) //[2 3 4] fmt.Println(s2) //[2 3 4][1 2
2020-09-13 18:15:58
10458
5
原创 time.Time datetime格式时间赋空值零值,判断datetime time.Time是否空值零值golang
赋零值 t := time.Now() nilTime:=time.Time{} var waitConfirmRecordParam model.WaitConfirmRecord waitConfirmRecordParam.CreatedAt = t waitConfirmRecordParam.UpdatedAt = t waitConfirmRecordParam.DeletedAt = nilTime//此处即为零值 waitConfirmRecordParam.ConfirmTi
2020-06-18 21:25:56
19937
原创 Key is invalid. You must supply a key in OpenSSH public key format github
直接赋值粘贴 .ssh的文件会破坏格式需要打开 git bash输入命令clip < ~/.ssh/id_rsa.pub回车后就复制到剪切板了,到github添加ssh keys的地方直接就能粘贴上如图:
2020-06-09 19:54:46
18421
13
原创 gorm FirstOrCreate和受影响行数
FirstOrCreate获取第一个匹配的记录,或创建一个具有给定条件的新记录(仅适用于struct, map条件) db.Where(User{Name: "Jinzhu"}).FirstOrCreate(&user)代码案例:func (tsu *TopicSignUp) TopicSignUpCreate() (bool, int64) { db := Db.Where(tsu).FirstOrCreate(&tsu) if err := db.Error; err !=
2020-05-19 15:08:57
6691
原创 2020年5月12日日期转时间戳golang time.Time格式日期转时间戳
2020年5月12日转时间戳代码如下package mainimport ( "fmt" "strings" "time")//获取当天0点和24点时间戳func dateToTimestamp() (dateTimestamp int64) { date := "2020年5月12日" date = strings.Replace(date, "年", "-", 1) date = strings.Replace(date, "月", "-", 1) date = strin
2020-05-12 13:58:31
2644
1
原创 golang gorm多条件筛选查询
案例:查看陌陌的动态,依次可以按照发布时间,性别,城市进行筛选如图进行筛选gorm链式操作Method Chaining,Gorm 实现了链式操作接口,所以你可以把代码写成这样:// 创建一个查询tx := db.Where("name = ?", "jinzhu")// 添加更多条件if someCondition { tx = tx.Where("age = ?", 20)} else { tx = tx.Where("age = ?", 30)}if yetAnot
2020-05-11 21:48:50
21036
原创 gorm关联一对多关系golang
user_topic表里的id,关联topic_image表里的topicID,//用户在发表话题动态的时候,同时发了多张照片,//查询的时候需要从topic_image表查出用户此条动态发布的所有照片。//是这样子的一对多关系1.model字段部分(加外键关联外键)type UserTopic struct { ID int64 `gorm:"primary_key" json:"id"` UserID int64 `json
2020-05-11 18:23:14
2585
原创 golang gorm 计算字段和 获取sum()值
计算表lb_ytt_user_money_log 中,字段money的和代码如下:var total_money []intsqlstr := `select SUM(money) as total_money from lb_ytt_user_money_log where user_id = ? and l_type = 1 and...
2020-04-26 17:19:16
8327
1
原创 根据当前用户的经纬度,查指定范围的用户(指定性别)golang
查询当前经纬度一千米以内的用户信息代码如下: distance := 1000 sql := fmt.Sprintf(`SELECT ROUND(6378.138 * 2 * ASIN(SQRT(POW(SIN((? * PI() / 180 - lt * PI() / 180) / 2),2) + COS(? * PI() / 180) * COS(lt * PI() / 180) * P...
2020-04-18 15:03:03
569
原创 Goland调节字体大小(编辑区,terminal区,页面字体)
1.调节页面字体File->Settings->Editor->Font2.调节代码编辑区字体Setting->Editor->Color Scheme->Console Scheme Font3.调节terminal区字体Setting->Editor->Color Scheme->Console Font若不生效,重启一下...
2020-04-13 11:51:31
17146
原创 please make sure you have the correct access rights and the repository exists码云
ssh key有问题,连接不上服务器git clone的时候遇到的这个问题,原来是我本地没有设置好ssh1、首先我得重新在git设置一下身份的名字和邮箱git config --global user.name “yourname”git config --global user.email“your@email.com"注:yourname是你要设置的名字,your@email是你要...
2020-04-10 15:55:30
682
原创 golang求连续子数组的最大和
问题描述:给定一个数组 array[1, 4, -5, 9, 8, 3, -6],在这个数字中有多个子数组,子数组和最大的应该是:[9, 8, 3],输出20,再比如数组为[1, -2, 3, 10, -4, 7, 2, -5],和最大的子数组为[3, 10, -4, 7, 2],输出18。代码如下:package mainimport ( "fmt")func getMaxSu...
2020-04-07 10:35:40
607
原创 找出数组中出现奇数次的数golang
问题描述:给定一个含有n个元素的整型数组array,找出其中出现奇数次的数。思路:遍历数组,把数组中的元素作为一个map的key,判断这个key在map中是否已存在,若不存在value=1,若已存在翻转value的值(若value=0翻转成1,若value=1翻转成0),最后value=1的key就是出现奇数次的数。代码如下:package mainimport ( "fmt")...
2020-04-03 16:52:08
601
转载 golang爬虫案例
1.1爬虫步骤1.明确目标(确定在哪个网站搜索)2.爬(爬下内容)3.取(筛选想要的)4.处理数据(按照你的想法去处理)代码如下:package mainimport ( "fmt" "io/ioutil" "net/http" "regexp")//这个只是一个简单的版本只是获取QQ邮箱并且没有进行封装操作,另外爬出来的数据也没有进行去重操作...
2020-04-02 17:11:42
922
原创 golang数组-----寻找数组中缺失的整数
问题:由n-1个整数组成的未排序数组,元素都是1~n的不同整数,找出其中缺失的整数方法一:思路:是原数组的和 减去 丢失元素后的数组的和,就得到丢失的元素了代码如下:package mainimport ( "errors" "fmt")func getMissingElement(arr []int) int { var sumA, sumB int if arr ==...
2020-04-02 11:43:45
333
转载 golang 结构体和方法
1. 定义结构体是将另个或者多个任意类型的命名变量组合在一起的聚合数据类型。2. 成员变量访问控制机制如果一个结构体的成员变量名称是首字母大些的,那么这个变量是可导出的(即在其他包可以访问到)。一个结构体可以同时包含可导出和不可导出的成员变量type A struct { Hour int //可导出 minute int //不可导出}限制命名结构体类...
2020-04-01 17:39:31
1166
原创 golang gin 框架 异步同步 goroutine 并发
goroutine机制可以方便地实现异步处理package mainimport ( "log" "time" "github.com/gin-gonic/gin")func main() { // 1.创建路由 // 默认使用了2个中间件Logger(), Recovery() r := gin.Default() // 1....
2020-03-27 20:24:57
5423
2
原创 golang gin 框架 重定向
代码如下:package mainimport ( "net/http" "github.com/gin-gonic/gin")func main() { r := gin.Default() r.GET("/index", func(c *gin.Context) { c.Redirect(http.StatusMovedPerman...
2020-03-27 20:21:47
1479
原创 golang gin框架获取参数
1.获取URL参数GET请求参数通过URL传递URL参数可以通过DefaultQuery()或Query()方法获取DefaultQuery()若参数不存在,返回默认值,Query()若参数不存在,返回空串user_id := com.StrTo(ctx.Query("user_id")).MustInt64()page := com.StrTo(ctx.DefaultQuery("pa...
2020-03-27 19:04:52
4681
原创 golang gorm增删改查db.Model db.Where db.Table
1. 创建创建记录:user := User{Name: "Jinzhu", Age: 18, Birthday: time.Now()}db.NewRecord(user) // => 主键为空返回`true`db.Create(&user)db.NewRecord(user) // => 创建`user`后返回`false`设置默认值:可以在gorm ...
2020-03-27 14:47:20
13835
2
原创 Unix和UnixNano
Unix将t表示为Unix时间,即从时间点January 1, 1970 UTC到时间点t所经过的时间(单位秒)。在windows下,rand.Seed(time.Now().Unix())作为种子,得出的随机数是随机的func (t Time) Unix() int64UnixNano将t表示为Unix时间,即从时间点January 1, 1970 UTC到时间点t所经过的时间(单位纳秒...
2020-03-24 21:05:22
7595
原创 golang int 转float 强转和高精度转
golang int 转float方法一:强转:代码如下:import "fmt"func main() { var money int money = 1 fmt.Println(float64(money) / float64(100))}输出结果:0.01方法二:高精度转:代码如下:import ( "fmt" "math/big" "strconv...
2020-03-17 16:43:49
14726
原创 golang排序算法(选择、插入、冒泡、快速排序)
假设从小到大排序1.选择排序基本原理:对于给定的一组记录,经过第一轮比较后得到最小记录,然后将该记录与第一个记录的位置交换;接着对不包括第一个记录以外的其他记录进行第二次比较,得到的最小记录与第二个记录进行位置交换;重复该过程,直到进行比较的记录只有一个时为止。以数组{2,4,3,1,7,9,5,6}为例:第一轮排序后:1{2,4,3,7,9,5,6}第二轮排序后:1,2{4,3,7,9...
2019-11-17 15:34:56
233
原创 golang单元测试示例
golang UnitTest的书写规范和简单适用规范:单元测试文件名必须以xxx_test.go命名测试函数必须是TestXxx开头方法参数必须 t *testing.T测试文件和被测试文件必须在一个包中示例:hello.gopackage mainfunc add(x int,y int)int{ return x+y}main_test.go//单元测试文...
2019-11-12 19:11:15
443
原创 golang邮箱发送验证码
常用邮箱:QQ 邮箱POP3 服务器地址:qq.com(端口:995)SMTP 服务器地址:smtp.qq.com(端口:465/587)163 邮箱:POP3 服务器地址:pop.163.com(端口:110)SMTP 服务器地址:smtp.163.com(端口:25)126 邮箱:POP3 服务器地址:pop.126.com(端口:110)SMTP 服务器地址:smtp.12...
2019-11-08 14:19:16
3487
原创 beego/logs模块的使用
1. 通用方式首先引入包:import ( "github.com/astaxie/beego/logs" )然后添加输出引擎(log 支持同时输出到多个引擎),这里我们以 console 为例,第一个参数是引擎名(包括:console、file、conn、smtp、es、multifile)// SetLogger provides a given logger adapter int...
2019-11-07 19:04:26
1875
原创 在一个无序不重复数组中,求两个元素相加值为100的有多少对golang
【问题描述】给定一个数组,求两个数之和=给定值sum的所有组合个数。【方法一】穷举法从数组中任意找两个数,看其和是否=sum。时间复杂度O(N^2)【方法二】hash表法只需要遍历一遍数组,非常高效思路:定义一个map,一开始为空,不存数据,开始遍历数组,判断第一个元素是否有另一半已经在map中,如果有count++,没有的话,把第一个元素存入map;继续遍历第二个元素,判断第二个元素...
2019-10-30 11:35:10
936
原创 golang数组实现栈(压栈,弹栈,取栈顶元素,获取栈中元素个数)
栈的介绍:栈是一个先入后出的有序列表栈(stack)是线制性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表。允许插入和删除的一端,为变化的一端,称为栈顶(top),另一端为固定的一端,称为栈底(Bottom)。栈和堆栈是同一个概念最先放入栈中的元素在栈底,最后放入的元素在栈顶删除元素:最后放入栈中的元素先删除,最先放入的最后删除栈的使用场景:子程序的调用(在跳往子程序前...
2019-10-25 18:01:25
2610
原创 golang中sync.RWMutex和sync.Mutex
介绍sync 包实现了两种锁:1. Mutex:互斥锁type Mutex struct { // 包含隐藏或非导出字段}Mutex是一个互斥锁,可以创建为其他结构体的字段;零值为解锁状态。Mutex类型的锁和线程无关,可以由不同的线程加锁和解锁。注意:在一个 goroutine 获得 Mutex 后,其他 goroutine 只能等到这个 goroutine 释放该 ...
2019-10-25 16:33:06
850
原创 golang数组实现环形队列
思路:将数组看成是一个环形的(通过取模的方式来实现)什么时候表示队列满 (tail+1)%maxSize==head当tail==head时表示队列为空初始化时,tail=0,head=0统计该队列有多少个元素 (tail+maxSize-head)%maxSizetail在队列尾部,不包含最后的元素(见下面的‘注意’),head指向队首并且含队首元素**...
2019-10-24 21:55:49
700
原创 如何实现链表的逆序golang(两种方法:就地逆序法和插入法)
题目描述:给定一个带头结点的单链表,请将其逆序。即如果单链表原来为head->1->2->3->4->5->6->7,则逆序后变为head->7->6->5->4->3->2->1分析与解答:由于单链表与数组不同,单链表中每个结点的地址都存储在其前驱结点的指针域中,因此对单链表中任何一个结点的访问只能从链表...
2019-10-23 18:34:17
988
转载 算法时间复杂度和空间复杂度的计算
算法,即解决问题的方法。同一个问题,使用不同的算法,虽然得到的结果相同,但是耗费的时间和资源是不同的。时间复杂度的计算计算一个算法的时间复杂度,不可能把所有的算法都编写出实际的程序出来让计算机跑,这样会做很多无用功,效率太低。实际采用的方法是估算算法的时间复杂度。在学习C语言的时候讲过,程序由三种结构构成:顺序结构、分支结构和循环结构。顺序结构和分支结构中的每段代码只运行一次;循环结构中的代...
2019-10-23 11:45:30
281
原创 golang一个无序数组中两个数之和等于给定的值sum
【问题描述】给定一个数组,求两个数之和=给定值sum的所有组合个数。【变形】两个数之和=sum的任意一组数【方法一】穷举法从数组中任意找两个数,看其和是否=sum。时间复杂度O(N^2)【方法二】hash表法只需要遍历一遍数组,非常高效思路:定义一个map,一开始为空,不存数据,开始遍历数组,判断第一个元素是否有另一半已经在map中,如果有count++,没有的话,把第一个元素存入m...
2019-10-22 17:06:35
1089
原创 golang经典编程题30题(带答案)golang基础算法30题
1.打印出九九乘法表并统计耗时package mainimport ( "fmt" "time")func main() { start := time.Now() var i, j int for i = 1; i <= 9; i++ { for j = 1; j <= i; j++ { fmt.Printf("%d*%d=%d\t", i, j, i...
2019-10-18 18:46:59
15065
5
原创 golang实现双链表增删改查
双向链表循环单链表的出现,虽然能够实现从任一结点出发沿着链能找到其前驱结点,但时间耗费是O(n)。如果希望从表中快速确定某一个结点的前驱,另一个解决方法就是在单链表的每个结点里再增加一个指向其前驱的指针域prior。这样形成的链表中就有两条方向不同的链,我们可称之为双(向)链表(Double Linked List)双向链表示意图:golang双链表案例代码(增删改查):package ...
2019-10-10 18:02:22
404
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人