Go
Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。
Bel_Ami@
这个作者很懒,什么都没留下…
展开
-
【golang】go读取Excel表格中的数据
安装"github.com/tealeg/xlsx"库。常用的库是github.com/tealeg/xlsx,提供了处理Excel文件的功能。在Go语言中,可以使用第三方库来读取Excel文件。原创 2024-06-04 10:41:16 · 819 阅读 · 0 评论 -
【Golang】go操作Excel基本操作-写入并保存
首先,安装github.com/tealeg/xlsx库。可以通过以下命令在终端中安装:原创 2024-06-04 11:00:30 · 579 阅读 · 0 评论 -
golang sm2加解密
golang sm2加解密原创 2023-08-01 14:25:08 · 926 阅读 · 0 评论 -
go mod使用
https://www.jianshu.com/p/760c97ff644c原创 2023-02-15 10:11:46 · 206 阅读 · 0 评论 -
go语言环境配置 & 项目启动
go语言各个版本之间兼容性比较差。所以可能你需要安装固定的版本1 安装最新版的go2 查看go可以安装的版本3 安装指定版本的go4 查看安装的go语言的版本go version5 查看go的安装路径6 查看go的环境变量go env主要关注go语言的GOROOTGOPATH这三个环境变量7 如果go version不管用 检查下环境变量是否配置了go语言的环境变量。原创 2023-02-15 10:05:09 · 1373 阅读 · 0 评论 -
Golang 并发 - 信道
信道是协程之间通信的管道,从一端发送数据,另一端接收数据。原创 2022-10-13 15:23:10 · 261 阅读 · 1 评论 -
Golang 并发 - 协程
并行其实很好理解,就是同时执行的意思,在某一时间点能够执行多个任务。想达到并行效果,最简单的方式就是借助多线程或多进程,这样才可在同一时刻执行多个任务。单线程是永远无法达到并行状态的。原创 2022-10-13 15:10:22 · 628 阅读 · 0 评论 -
Golang 并发 - Select
select 的用法有点类似 switch 语句,但 select 不会有输入值而且只用于信道操作。select 用于从多个发送或接收信道操作中进行选择,语句会阻塞直到其中有信道可以操作,如果有多个信道可以操作,会随机选择其中一个 case 执行。原创 2022-10-13 10:57:07 · 470 阅读 · 0 评论 -
golang截取字符串并拼接
golang截取数据并拼接。原创 2022-08-08 17:22:45 · 89 阅读 · 0 评论 -
Golang Context 实战与源码分析
如果父节点context的deadline早于本次创建子节点的deadline,那就没必要给子节点创建一个timerCtx了,因为根据deadline来看,父节点肯定会早与这个子节点取消,而父节点取消后,子节点也会跟着被取消,所以没必要给子节点创建timer,直接创建一个cancelCtx将子节点挂到父节点上就行了,效果是一样的,还剩下一个timer。注这里的数据传递主要指全局数据,如链路追踪里的traceId之类的数据,并不是普通的参数传递(也非常不推荐用来传递参数)。...原创 2022-07-22 15:34:18 · 99 阅读 · 0 评论 -
golang 独立打包(不依赖系统动态链接库)
为了减少golang部署对操作系统动态链接库的依赖,我决定对自己的两个golang项目进行独立打包。在独立打包的过程中,出现上述错误,经过查找资料发现操作系统少了。然后继续使用ldd命令检查,发现已经没有动态链接库依赖。环境Centos6.7amd64。安装后再次执行上述命令已经不报错了。...原创 2022-07-21 16:58:19 · 163 阅读 · 0 评论 -
go语言中的&和*
放到一个变量前使用就会返回相应变量的。Go 语言的 取地址符是 &Go语言的 指针变量是 *,放在一个变量前使用就代表。原创 2022-07-04 14:52:39 · 587 阅读 · 0 评论 -
Golang模拟post接口请求
代码:package main import ( "fmt" gojsonq "github.com/thedevsaddam/gojsonq/v2" "io/ioutil" "log" "net/http" // "reflect" "strings")func main() { req, err := http.NewRequest("POST",原创 2021-09-27 10:29:58 · 603 阅读 · 0 评论 -
golang语言中map的初始化及使用
// 先声明mapvar m1 map[string]string// 再使用make函数创建一个非nil的map,nil map不能赋值m1 = make(map[string]string)// 最后给已声明的map赋值m1["a"] = "aa"m1["b"] = "bb"// 直接创建m2 := make(map[string]string)// 然后赋值m2["a"] = "aa"m2["b"] = "bb"// 初始化 + 赋值一体化m3 := map[string原创 2021-09-15 10:45:22 · 2493 阅读 · 0 评论 -
Golang简单写文件操作的四种方法
package mainimport ( "bufio" //缓存IO "fmt" "io" "io/ioutil" //io 工具包 "os")func check(e error) { if e != nil { panic(e) }}/** * 判断文件是否存在 存在返回 true 不存在返回false */func checkFileIsExist(filename string) bool { var exist = true if _, err :=原创 2021-09-10 17:12:12 · 662 阅读 · 0 评论 -
Golang框架选型比较: goframe, beego, iris和gin
由于工作需要,这些年来也接触了不少的开发框架,Golang的开发框架比较多,不过基本都是Web"框架"为主。这里稍微打了个引号,因为大部分"框架"从设计和功能定位上来讲,充其量都只能算是一个组件,需要项目使用的话得自己四处再去找找其他的组件,或者自己造轮子。如果用于Web开发,这些"框架"的Web开发能力均已完备,无太大差别,且均是自标准库net/http.Server的二次封装。由于框架众多,这里笔者只选择了几个曾做过技术选型评估、较为熟悉,且目前比较流行和典型的Golang"框架",从适用于业务项目开.原创 2021-08-06 16:27:26 · 3869 阅读 · 0 评论 -
Golang的range
go for range循环实例// setReqBodyLog 请求的body数据落日志func setReqBodyLog(ctx context.Context, req *http.Request) { formMap := map[string]string{} for k, v := range req.PostForm { for _, formV := range v { if formMap[k] == "" { formMap[k] = desensitizat原创 2021-08-06 11:03:39 · 4466 阅读 · 0 评论 -
go 解析身份证
package cardimport ( "encoding/json" "errors" "strconv" "strings" "time")//包括1980-2020年的所有行政区划代码var zone = `{"110000":"北京市","110101":"东城区","110102":"西城区","110103":"崇文区","110104":"宣武区","110105":"朝阳区","110106":"丰台区","110107":"石景山区","1101原创 2021-08-02 09:58:56 · 3057 阅读 · 0 评论 -
Golang中删除字符串的最后一个字符
package mainimport ( "fmt" "strings")func TrimSuffix(s, suffix string) string { if strings.HasSuffix(s, suffix) { s = s[:len(s)-len(suffix)] } return s}func main() { s := "a string ++" fmt.Println("s: ", s)原创 2021-07-29 14:59:19 · 1337 阅读 · 0 评论 -
Golang 字符串分割,替换和截取
package mainimport ( "fmt" "strings")func main() { str := "赵,钱,孙,李,赵" //字符串分割, 使用字符分割 str1 := strings.Split(str, ",") fmt.Println(str1[0]) //赵 fmt.Println(str1[1]) //钱 fmt.Println(str1[2]) //孙 fmt.Println(str1[3])原创 2021-07-29 14:37:58 · 2848 阅读 · 0 评论 -
Golang url的编码和解码
url 编码 (输入string) (返回string)strData := url.QueryEscape(str)url 解码 (输入string) (返回string,error)strData, err := url.QueryUnescape(urlStr)原创 2021-07-14 14:50:04 · 1694 阅读 · 0 评论 -
Golang json格式和结构体相互转换
结构体转换为jsondata, err := json.Marshal(req) // 返回[]byte,errfmt.Println(string(data))json转换为结构体err = json.Unmarshal([]byte(jsonStr), &resp)原创 2021-07-14 14:35:39 · 651 阅读 · 0 评论 -
Golang 中string和int类型相互转换
Golang 中 string 和 int 类型之间的相互转换方式:string转成int:int, err := strconv.Atoi(string)string转成int64:int64, err := strconv.ParseInt(string, 10, 64)int转成string:string := strconv.Itoa(int)int64转成string:string := strconv.FormatInt(int64,10)...原创 2021-07-14 11:47:26 · 327 阅读 · 0 评论 -
Golang 时间格式整理
// 时间格式整理func toTime(jcrq string) string { loc, _ := time.LoadLocation("Asia/Shanghai") //设置时区 tt, _ := time.ParseInLocation("2006-01-02 15:04:05", jcrq, loc) // 将时间字符串格式化为golang的"time.Time"对象 tm := time.Unix(tt.Unix(), 0) return tm.Format("2006-01-0.原创 2021-07-14 11:38:34 · 197 阅读 · 0 评论