
Go基础学习
RunFromHere
AI领域探索
展开
-
Golang实现快速排序
Golang实现快速排序关键词:快速 排序 快速排序 算法 比较 基准 golang go**算法复杂度:**O(nlogn)代码://Normal quick sortfunc QuickSort(list []int) []int { if len(list) < 2 { return list } pivot := list[0] var less []int var greater []int for _,v := range l原创 2020-12-29 19:59:20 · 335 阅读 · 0 评论 -
Golang实现选择排序
Golang实现选择排序关键词:选择排序 排序 算法 寻找 比较 golang go 实现**算法复杂度:**O(n^2)代码:func selectionSort(list []int) []int { newList := make([]int, 0) for i:=0; i< len(list); i++ { smallIndex := findSmallestIndex(list) newList = append(newList, list[sm原创 2020-12-29 19:59:06 · 214 阅读 · 0 评论 -
Golang实现二分查找
Golang实现二分查找关键词:关键词:算法 查找 基础 复杂度 二分 golang go 实现**条件:**带查找的数据需有序算法复杂度: O(log2(n))代码:// binary search works Only when the list is orderedfunc BinarySearch(list []int, item int) int { var low int var high int = len(list) - 1 for ; low <=原创 2020-12-29 19:55:12 · 222 阅读 · 0 评论 -
Golang 删除数组中的元素
Golang 删除数组中的元素关键词:Golang 删除 数组 元素 方法 接口 技巧Go语言并没有提供用于删除元素的语法或接口需要通过切片特性来删除元素具体思路确定删除位置 -> 连接删除元素前后的数组 -> 产生新数组newlist = append(list[:deleteIndex], list[(deleteIndex+1):]...)...原创 2020-12-28 13:49:30 · 6804 阅读 · 0 评论 -
Goalng计算ShA256值
Goalng计算ShA256值关键词:golang 计算 sha256 文件 字符串代码//sha256func SHA256File(path string) (string, error) { file, err := os.Open(path) defer file.Close() if err != nil { return "",err } h := sha256.New() _, err = io.Copy(h,f原创 2020-12-28 13:49:56 · 609 阅读 · 0 评论 -
Golang计算SHA1值
Golang计算SHA1值关键词:golang 计算 sha1 文件 字符串代码//sha1 func SHA1File(path string) (string, error) { file, err := os.Open(path) defer file.Close() if err != nil { return "",err } h := sha1.New() _, err = io.Copy(h,file)原创 2020-12-28 13:50:02 · 2612 阅读 · 0 评论 -
Golang 计算MD5值
Golang 计算MD5值关键词:golang 计算 md5 文件 字符串代码//MD5 func Md5SmallFile(path string) (string, error) { file, err := os.Open(path) if err != nil { return "", err } defer file.Close() h := md5.New() _, err = io.Copy(h, file) if err !原创 2020-12-28 13:50:07 · 1363 阅读 · 0 评论 -
Golang 发送邮件
Golang 发送邮件关键词:mail send golang go 邮件 发送 编程使用到的开源组件gomail https://github.com/go-gomail/gomail代码func SendMail() { m := gomail.NewMessage() m.SetAddressHeader("From", "sender@163.com", "Sender") // 发件人邮箱,发件人名称 m.SetHeader("To", // 收件人原创 2020-12-28 13:50:18 · 1168 阅读 · 1 评论 -
Golang语言接收可变参数(变参函数)
Golang语言接收可变参数(变参函数)关键词:go golang 语言 参数 不定 可变 函数变参函数,函数个数不定,如下nums参数。处理时当做普通数组处理即可func receiveNums(nums ...int) { for _, v := range nums { fmt.Println(nums) }}...原创 2020-12-25 16:53:53 · 535 阅读 · 0 评论 -
Golang 带参数的Main方法
Golang 带参数的Main方法关键词:golang 程序 运行时 接收参数 传参 自定义参数 mainpackage mainimport "flag"var name stringfunc init() { flag.StringVar(&name,"name","default","log in user")}func main() { //暂停获取参数 flag.Parse() println(name)}...原创 2020-12-25 16:52:59 · 2498 阅读 · 0 评论 -
Goland IDEA IDE 配置代理
Goland IDEA IDE 配置代理关键词:jetbrains goland idea ide 代理 配置 管理正常国外网络连接不上时,可以给ide配置代理,加速网络连接setting -> search “proxy” -> Manual proxy configuration -> socks Host name 127.0.0.1 Port [sock5 port]...原创 2020-12-25 16:47:20 · 2403 阅读 · 0 评论 -
ubuntu18.04安装Golang
ubuntu18.04安装Golang关键词:ubuntu安装golang ubuntu golang安装 ubuntu go安装文章目录ubuntu18.04安装Golang1.下载解压2.配置环境变量3.验证1.下载解压#GOROOT$ cd /usr/local/$ wget https://golang.google.cn/dl/go1.13.14.linux-amd64.tar.gz$ tar xvf go1.13.14.linux-amd64.tar.gz#GOPATH 我个人原创 2020-12-25 16:32:14 · 543 阅读 · 0 评论 -
Golang 并发时报错 connection reset by peer
golang 并发时报错 connection reset by peer关键词:golang 连接数过多 句柄数过多 tcp连接 操作系统刚开始还以为是golang http 包的原因,去google了好几篇文章,最后在github里找到了解决办法。首先要知道的是,在操作系统中,打开的文件数、打开的socket数、正在监听的端口数等统称为句柄数,而操作系统针对每个用户的句柄数是有默认限制的,比如root用户就是默认限制4096个句柄数。所以,Golang并发时报错 connection res原创 2020-12-15 09:13:22 · 5179 阅读 · 0 评论 -
Goalng如何删除数组中的元素
Go语言并没有提供用于删除元素的语法或接口需要通过切片特性来删除元素具体思路确定删除位置 -> 连接删除元素前后的数组 -> 产生新数组newlist = append(list[:deleteIndex], list[(deleteIndex+1):]...)...原创 2020-11-05 16:08:55 · 617 阅读 · 0 评论 -
Golang之用mgo执行MongoDB adminCommand命令
result := bson.M{} err = session.DB("admin").Run(bson.D{{"setParameter", 1}, {"ttlMonitorEnabled", false}}, &result) if err != nil { log.Println("err: ", err) return }原创 2019-10-12 18:13:48 · 1594 阅读 · 1 评论 -
Golang之使用mgo连接MongoDB
session, err := mgo.Dial("localhost:27017") if err != nil { log.Println("err: ", err) return } defer session.Close() // Optional. Switch the session to a monotonic behavior. session.S...原创 2019-10-12 18:11:16 · 603 阅读 · 1 评论 -
Golang之interface{}转换为其他类型
interface转换成具体类型调用方式:interfaceVar.(具体类型)原理:断言断言成功返回true,失败false代码示例:value, ok := a.(string)if !ok { fmt.Println("failed") return}fmt.Println("The value is ", value)...原创 2019-10-12 18:04:24 · 10011 阅读 · 0 评论 -
Golang如何跳出多重循环到达指定位置
文章目录break 跳出指定层循环goto 到指定标签处总结break 跳出指定层循环Loop: for i { for j { if j == 2 { break Loop } } }这样的 break 就可以指定跳出 Loop 循环goto...原创 2019-10-12 18:01:17 · 1356 阅读 · 0 评论 -
Golang之使用正则表达匹配小时数
匹配小时数的正则,能够匹配小时数 01,02,03,…,23^(([0-1]\d)|(2[0-3]))Golang调用正则匹配regex := `^(([0-1]\d)|(2[0-3]))`flag, err := regexp.MatchString(regex, maintenanceStartTime.Value)...原创 2019-10-12 17:25:15 · 732 阅读 · 0 评论 -
Go之如何安装Go语言?
1.下载响应系统版本网址(需要翻墙):https://golang.org/dl/你说不会翻墙?翻墙可是程序员的基本功!翻墙最简单的话可以直接购买各种翻墙服务器,当然学生党也可以尝试找免费的,具体的自行知乎~下载对应版本之后,安装就可以了。Window下,直接运行安装程序。它甚至会自动帮你配好环境变量了。这个真是个纯傻瓜版的安装包啊。2.测试一下Linux终端或者是Window cm...原创 2018-10-21 03:01:45 · 555 阅读 · 0 评论 -
Go语法之包、导入包、导出名是什么?
官网教程(需翻墙):https://tour.go-zh.org/basics/1包每个 Go 程序都是由包构成的。程序从 main 包开始运行。通过导入路径 “fmt” 和 “math/rand” 来使用这两个包。按照约定,包名与导入路径的最后一个元素一致。例如,“math/rand” 包中的源码均以 package rand 语句开始。示例package mainimport...原创 2018-10-21 03:02:41 · 1439 阅读 · 0 评论 -
Go基础之如何学习Go语言?GO语言+区块链学习线路
GO语言+区块链学习线路学区块链为什么要学Go语言?1. 学习路线图—市场价值及可解决的问题2. 学习路线图—可掌握的核心能力3. 学习路线图—设计理念4. 学习路线图—学习大纲及各阶段知识点来源:黑马程序员非打广告,有需要视频的可以去wx公众号找,也可以评论找我,免费分享!...原创 2018-10-30 11:54:16 · 499 阅读 · 2 评论 -
Go开发之如何破解安装GoLand编译器?
1. 下载一个jar包:JetbrainsCrack-3.1-release-enc.jar下载地址是http://idea.lanyus.com/ ,进去之后点击网址下载,如下图。也可以直接点击:http://idea.lanyus.com/jar/JetbrainsIdesCrack-3.4-release-enc.jar 下载2. 将下载好的jar包放到GoLand的bin目录下,...原创 2018-11-24 16:36:17 · 4778 阅读 · 3 评论 -
Go安装之linux下如何配置Go语言环境变量?
文章目录1. 登录root 用户,修改配置2. 修改内容3. 生效配置,并测试是否可用1. 登录root 用户,修改配置切换到root用户模式$ sudo -ipassword:打开/etc/profile配置文件$ vim /etc/profile2. 修改内容因为我的go是放在 /user/local/go 下的,所以我的GOROOT是/user/local/go在最...原创 2018-11-30 11:19:11 · 4104 阅读 · 0 评论 -
Go之如何高效地读写文件?
文章目录1. 读取文件2. 写入文件2.1 string类型写入2.2 []byte类型写入1. 读取文件//读取文件func readFile(filepath string) string { //打开文件 fi, err := os.Open(filepath) checkError(err) //读取内容 fd, err := ioutil.Read...原创 2019-03-07 13:48:11 · 3454 阅读 · 0 评论 -
Go之如何实现高效的 byte 或 string 连接?
文章目录1. 多个[]byte 连接2. 多个string相连1. 多个[]byte 连接b1:=[]byte(“this is a first string”)b2:=[]byte(“this is a second string”)var buffer bytes.Buffer //Buffer是一个实现了读写方法的可变大小的字节缓冲buffer.Write(b1)buffer....原创 2019-03-07 13:50:41 · 806 阅读 · 0 评论 -
Go之int整数与string字符串相互转换
文章目录1.int整数转字符串1.1 fmt.Sprintf1.2 strconv.Itoa1.3 strconv.FormatInt2.字符串转int整数2.1 strconv.Atoi2.2 strconv.ParseInt1.int整数转字符串1.1 fmt.Sprintffmt 包应该是最常见的了,从刚开始学习 Golang 就接触到了,写 ‘hello, world’ 就得用它。...原创 2019-03-14 19:52:31 · 10389 阅读 · 0 评论 -
Go之[]byte字节数组与string字符串相互转换
文章目录Go字节数组与字符串相互转换1. string 转为[]byte2. byte转为stringGo字节数组与字符串相互转换string 不能直接和byte数组转换string可以和byte的切片转换1. string 转为[]bytevar str string = "test"var data []byte = []byte(str)2. byte转为string...原创 2019-03-14 20:00:42 · 13692 阅读 · 0 评论 -
Go之如何截取string字符串?截取英文与中文字符串
文章目录Go截取字符串1. 截取普通英文字符串2. 截取带中文字符串Go截取字符串当你需要截取字符串中的一部分时,可以使用像截取数组某部分那样来操作1. 截取普通英文字符串使用示例:str := "XHelloWorldX"content := str[1 : len(str)-1]fmt.Println(content)运行结果为:HelloWorld2. 截取带中文字...原创 2019-03-14 20:18:55 · 5829 阅读 · 0 评论 -
Go之如何提取数字的各个位数?
文章目录Go之如何提取数字的各个位数?1. 直接用数学方法进行计算2. 将数字转换成字符串,再进行截取总结Go之如何提取数字的各个位数?主要有两种方法直接用数学方法进行计算将数字转换成字符串,再进行截取1. 直接用数学方法进行计算数学方法:对于任意一个数n,要计算第site位的数,都可以以下式子得到n/10^(site-1)%10例子:var data int = 12...原创 2019-03-14 20:31:32 · 11177 阅读 · 1 评论 -
Go语言之时间戳和时间格式如何相互转换?
大家都是程序员,我就直接上代码了!package mainimport( "fmt" "time")func main() { datetime := "2019-03-11 21:07:00" //待转化为时间戳的字符串 //日期转化为时间戳 timeLayout := "2006-01-01 12:33:36" //转化所需模板 ...原创 2019-03-11 21:10:55 · 1585 阅读 · 0 评论 -
大数据MongoDB之mgo驱动如何对查询结果进行排序(正序逆序多字段排序)?
mgo - MongoDB driver for Go,是一个连接数据库的开源工具。我们要如何使用mgo驱动对查询结果进行排序呢?(正序逆序多字段排序)文章目录1.Sort() 方法1.1 可以使用 Sort() 方法根据某个字段进行排序1.2 可以逆序查询,只要在字段名前加上 '-' 号就好1.3 也可以多字段查询2. 源码解析1.Sort() 方法1.1 可以使用 Sort() 方法...原创 2019-03-20 17:00:56 · 5092 阅读 · 0 评论 -
Go Web之Gin框架 启动程序之后程序直接停止的问题解决
文章目录1. 原代码如下2. 问题排查解决1. 原代码如下package mainimport "github.com/gin-gonic/gin"func main() { r := gin.Default() r.GET("/ping", func(c *gin.Context) { c.JSON(200, gin.H{ "...原创 2019-05-13 21:47:56 · 4410 阅读 · 3 评论 -
Go 获取当前目录路径
str, _ := os.Getwd()获取到当前的路径,等效于linux 平台下 $pwd 命令原创 2019-05-13 22:49:41 · 18969 阅读 · 0 评论 -
Go之项目打包部署
文章目录1. Go Bulid 命令2. 最常用的两个打包实例2.1 打包成可在windows运行的exe文件2.2 打包成可在linux运行的文件1. Go Bulid 命令如何打包Go项目呢?我们使用 go build 命令,先来看看go build 命令的基本用法usage: $ go build [-o output] [-i] [build flags] [packages]...原创 2019-05-13 23:05:12 · 36119 阅读 · 1 评论 -
Go之Go语言是什么?Go有什么特点?Go语言的应用前景如何?
1.Go语言简介1.1谷歌爸爸Go语言是谷歌2009发布的第二款开源编程语言。Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。Go语言可以在不损失应用程序性能的情况下降低代码的复杂性。1.2投入较大2007年,谷歌把Go作为一个20%项目开始研发,即让员工抽出本职工作之外时间的20%,投入在该项目上。除了派...原创 2018-10-21 03:00:32 · 1536 阅读 · 0 评论