
golang
疯狂的鸭血
公众号:卷心菜ai
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
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 · 1744 阅读 · 0 评论 -
Golang面试题整理
32.并发编程概念是什么?并行是指两个或者多个事件在同一时刻发生;并发是指两个或多个事件在同一时间间隔发生。并行是在不同实体上的多个事件,并发是在同一实体上的多个事件。在一台处理器上“同时”处理多个任务,在多台处理器上同时处理多个任务。如hadoop分布式集群并发偏重于多个任务交替执行,而多个任务之间有可能还是串行的。而并行是真正意义上的“同时执行”。并发编程是指在一台处理器上“同时”处理多个任务。并发是在同一实体上的多个事件。多个事件在同一时间间隔发生。并发编程的目标是充分的利用处理器的每一个核,原创 2020-09-14 23:13:54 · 1524 阅读 · 0 评论 -
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 · 10557 阅读 · 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 · 20152 阅读 · 0 评论 -
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 · 18456 阅读 · 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 · 6738 阅读 · 0 评论 -
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 · 2670 阅读 · 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 · 21121 阅读 · 0 评论 -
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 · 2603 阅读 · 0 评论 -
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 · 8396 阅读 · 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 · 590 阅读 · 0 评论 -
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 · 17853 阅读 · 0 评论 -
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 · 630 阅读 · 0 评论 -
找出数组中出现奇数次的数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 · 625 阅读 · 0 评论 -
golang爬虫案例
1.1爬虫步骤1.明确目标(确定在哪个网站搜索)2.爬(爬下内容)3.取(筛选想要的)4.处理数据(按照你的想法去处理)代码如下:package mainimport ( "fmt" "io/ioutil" "net/http" "regexp")//这个只是一个简单的版本只是获取QQ邮箱并且没有进行封装操作,另外爬出来的数据也没有进行去重操作...转载 2020-04-02 17:11:42 · 1001 阅读 · 0 评论 -
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 · 353 阅读 · 0 评论 -
golang 结构体和方法
1. 定义结构体是将另个或者多个任意类型的命名变量组合在一起的聚合数据类型。2. 成员变量访问控制机制如果一个结构体的成员变量名称是首字母大些的,那么这个变量是可导出的(即在其他包可以访问到)。一个结构体可以同时包含可导出和不可导出的成员变量type A struct { Hour int //可导出 minute int //不可导出}限制命名结构体类...转载 2020-04-01 17:39:31 · 1193 阅读 · 0 评论 -
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 · 5468 阅读 · 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 · 1495 阅读 · 0 评论 -
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 · 4731 阅读 · 0 评论 -
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 · 7692 阅读 · 0 评论 -
如何实现链表的逆序golang(两种方法:就地逆序法和插入法)
题目描述:给定一个带头结点的单链表,请将其逆序。即如果单链表原来为head->1->2->3->4->5->6->7,则逆序后变为head->7->6->5->4->3->2->1分析与解答:由于单链表与数组不同,单链表中每个结点的地址都存储在其前驱结点的指针域中,因此对单链表中任何一个结点的访问只能从链表...原创 2019-10-23 18:34:17 · 1002 阅读 · 0 评论 -
golang一个无序数组中两个数之和等于给定的值sum
【问题描述】给定一个数组,求两个数之和=给定值sum的所有组合个数。【变形】两个数之和=sum的任意一组数【方法一】穷举法从数组中任意找两个数,看其和是否=sum。时间复杂度O(N^2)【方法二】hash表法只需要遍历一遍数组,非常高效思路:定义一个map,一开始为空,不存数据,开始遍历数组,判断第一个元素是否有另一半已经在map中,如果有count++,没有的话,把第一个元素存入m...原创 2019-10-22 17:06:35 · 1110 阅读 · 0 评论 -
golang 链表逆序反转输出
链表逆序案例代码//如何实现链表的逆序package mainimport "fmt"type studentNode struct { no int name string age int next *studentNode pre *studentNode}func reverse(head *studentNode) { //1.创建一个辅助结点 te...原创 2019-10-09 21:56:48 · 756 阅读 · 0 评论 -
golang单链表(增删改查)
单链表-LinkedList链表(Linked list)是一种常见的基础数据结构,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针。由于不是必须按顺序存储,链表在插入的时候可以达到O(1),比顺序表快得多,但是查找一个节点或者访问特定编号的节点则需要O(n)的时间。单链表的示意图:说明:一般来说,为了比较好的对单链表进行增删改查,我们都会给它设置一个头结点,头结点的...原创 2019-10-09 10:58:22 · 1258 阅读 · 2 评论 -
golang统计词频
golang 统计词频使用golang实现词频统计。步骤:(1)从文件中读取一篇文章。(2)统计词频,按单词出现的频率从大到小进行排序(3)写入到文件中。package mainimport ( "encoding/json" "fmt" "io/ioutil" "log" "os" "sort" "strings" "unicode")func getWord...原创 2019-10-08 14:10:27 · 544 阅读 · 0 评论 -
golang实现http server端和http client端
一、http server端1.http包提供了HTTP客户端和服务端的实现。2.http.HandleFunc-注册回调函数func HandleFunc(pattern string, handler func(ResponseWriter, *Request))HandleFunc注册一个处理器函数handler和对应的模式pattern(注册到DefaultServeMux)。S...原创 2019-10-08 13:42:45 · 2311 阅读 · 0 评论 -
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 · 15229 阅读 · 5 评论 -
$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 · 81761 阅读 · 8 评论 -
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 · 14786 阅读 · 0 评论 -
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 · 246 阅读 · 0 评论 -
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 · 465 阅读 · 0 评论 -
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 · 3536 阅读 · 0 评论 -
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 · 1907 阅读 · 0 评论