Go
文章平均质量分 55
枝袅
这个作者很懒,什么都没留下…
展开
-
Go 广度优先遍历 多叉树
遇到个需求是要求广度优先遍历多叉树,找了一下,c版本的比较多,go版本的没几个,记录一下。解决的关键是使用队列package mainimport "fmt"type TreeNode struct { NodeId int ChildNodes []TreeNode}/* 1 2 3 4 5 6 7 8 9 10正确的顺序: 1 2 3 4 5 6 7 8 9 10*/func mai原创 2022-05-31 14:42:57 · 947 阅读 · 0 评论 -
Golang中的strings.TrimLeft和strings.TrimRight
package mainimport ( "fmt" "strings")func main() { fmt.Println("aabbccdd\t:",strings.TrimLeft("aabbccdd","abcd")) // 空字符串 fmt.Println("aabbccdde\t:",strings.TrimLeft("aabbccdde","abcd")) // e fmt.Println("aabbeccdd\t:",strings.TrimLeft("aabbedcb原创 2020-11-11 17:33:46 · 6043 阅读 · 0 评论 -
Golang 在linux中新建用户
今天有一个需求是使用程序在Linux新建用户账户和家目录。找了好久,只找到和golang如何使用cmd相关的,那么就可以试试了。最终在centos7上成功了。func AddLinuxUser(username, password string) { //这里新建用户,并新建家目录 useradd := exec.Command("useradd", "-m", username) er...原创 2020-04-28 21:20:57 · 1175 阅读 · 3 评论 -
Gorm中 invalid connection 问题的解决
这几天一直遇到一个问题,有一个接口在长时间不访问后总是报 invalid connection错误。顾名思义,数据库连接是无效的 ,这是因为在长时间不使用后数据库单方面关闭了连接,导致gorm连接数据库的时候使用的连接已经变成无效连接了。要想解决这个问题那么首先查看数据库的超时时间。SHOW VARIABLES LIKE '%timeout%';可以看到 wait_timeout = ...原创 2020-04-08 16:42:10 · 11227 阅读 · 2 评论 -
Golang Gin框架如何在Cookie中设置SameSite
http.SetCookie(c.Writer,&http.Cookie{ Name: "token", //你的cookie的名字 Value: token, //cookie值 Path: "/", Domain: "", MaxAge: 604800, Secure: false, HttpOn...原创 2020-02-14 21:07:04 · 2881 阅读 · 0 评论 -
Golang根据不同的路由前缀做http转发
今天接到任务是做请求转发,公司有几个已经写好的微服务,现在需要一个统一的登录接口验证权限,登录也是单独的微服务。现在要统一访问登录的服务,做权限验证,通过后,将请求转发给对应的微服务。想了很长时间,只要问题在于怎么得到对应的微服务的url。一开始怎么也想不出来,其实还是知识不够。gin的路由是可以有通配符 *存在的,但要这样写*url,如下面的代码所示,*url会匹配 /test2/后面的所有...原创 2020-02-12 23:06:20 · 2062 阅读 · 0 评论 -
Golang response body多次读取
golangresponse body是不能多次读取的,要多次读取的话如下bodyRes, err := ioutil.ReadAll(resp.Body) resbody :=ioutil.NopCloser(bytes.NewReader(bodyRes))基本思路就是读取resp.Body,然后重新生成可读取的...原创 2020-02-01 15:26:47 · 3833 阅读 · 0 评论 -
Golang Cookie和Token的使用
func GetXXX(ctx *gin.Context){ uri:= "http://xxxx.com" client := &http.Client{} fmt.Println(uri) req:= GetInfo(uri) resp, err := client.Do(req) if err != nil { fmt.Println("访问接口出错") } bo...原创 2020-01-04 19:06:40 · 999 阅读 · 0 评论 -
Golang操作Redis
以下是Golang操作redis的一些简单操作,使用了beego自带的日志包和Redis连接池。package mainimport ( "encoding/json" "fmt" "github.com/astaxie/beego/logs" "github.com/gomodule/redigo/redis")/** * @author miku * @date 201...原创 2019-12-01 22:17:34 · 398 阅读 · 0 评论 -
LeetCode : 2 两数相加 Golang
给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 ->...原创 2019-09-22 21:56:42 · 162 阅读 · 0 评论 -
LeetCode:1 两数之和 Golang
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]func twoS...原创 2019-09-22 21:53:51 · 119 阅读 · 0 评论 -
LeetCode:26 删除排序数组中的重复项 Golang
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。示例 2:给定 ...原创 2019-09-22 18:32:22 · 236 阅读 · 0 评论 -
简单理解Golang接口/interface
可能有一些工厂模式的影子。先来说一说接口是什么,接口是方法声明的集合。任何类型的对象实现了在interface 接口中声明的全部方法,则表明该类型实现了该接口。怎么理解呢?接口里面就是未实现的方法,就是 方法名(参数列表)返回值类型这种形式。下一句可以这么理解,golang中的方法必须要有对象接收。//结构体type Cow struct { Name string}//奶牛的...原创 2019-09-13 16:23:25 · 441 阅读 · 1 评论 -
Centos 7 安装golang环境
首先 下载go进入官网下载找到下载链接,执行示例如下:# wget https://dl.google.com/go/go1.12.9.linux-amd64.tar.gz # tar -C /usr/local -xzf go1.12.9.linux-amd64.tar.gz# vim /etc/profile按 i 加入如下代码export PATH=$PATH:/us...原创 2019-09-02 16:23:39 · 268 阅读 · 0 评论