- 博客(146)
- 资源 (34)
- 收藏
- 关注
原创 golang中使用最多的函数TOP100排行榜
你知道go语言中使用最多的100个函数吗?我们通过大数据算法在对比了100多万个项目后得出以下TOP100函数使用排行榜
2024-05-21 17:26:35 253
原创 go语言中的一个特别的语法 //go:embed 可将将静态文件内容读取到string, []byte和 embed.FS 变量并直接打包到exe包中
上面我们将我们的版本信息存放到 version.txt文件中, 打包的时候编译器就会自动读取这个文件并赋值给对应的变量 version。这个embed支持将读取的文件赋值给。go语言中的一个特别的语法。
2024-05-20 18:52:43 110
原创 golang session实现库 支持cookie, redis,mysql等多种存储方式
GitHub - tekintian/go-sessions: go语言里面的Sessions实现库, 支持众多的Session存储方式,cookie, redis, mysql等。golang中官方是不支持session的, 如果想要实现session则需要自己动手来实现,或者使用第三方的go-session实现库, 今天就给大家介绍一个go语言的第三方session实现库 go-sessions,支持 的存储方式有 cookie, file, redis, mysql等众多的存储。
2024-05-20 18:29:27 316
原创 github推送代码时 错误:源引用规格 main 没有匹配 解决方法
这个是因为github上默认的分支为 main, 而我们本地创建的git一般默认的分支为 master, 本地分支和要推送的分支不匹配就会抛出这个异常 ,解决方法: git branch -M main 却换本地分支为main 然后在执行 git push -u origin main 即可。错误:无法推送一些引用到 'https://github.com/tekintian/go-net-ping-demo.git'错误:源引用规格 main 没有匹配。
2024-05-20 14:52:16 116
原创 golang html/template 模板内置函数FuncMap, 模板里面的比较运算 eq ne gt lt 与其相关的实现代码
我们在使用go语言的模板的时候对于内置函数我们是可以直接在模板里面使用的, 如 html 他实际上是绑定的函数 func HTMLEscaper(args ...any) string。另外,如eq等于 ne不等于 gt大于 lt小于等 他们实际上也是一个个对应的。
2024-05-20 13:36:47 357
原创 golang中的字节序 binary BigEndian 大端 , LittleEndian 小端 理解与write写入注意事项
在golang的binary包中有2个字节系的变量定义BigEndian和LittleEndian 这个东西是go里面很有特点的玩意,我们在java, php等语言中是基本看不到,因为大部分的语言默认使用的是BigEndian 大端模式, 而go语言里面是你自己可选的。这个字节系大小端是与编译器运行平台的CPU架构有关, x86架构的CPU使用的是小端LittleEndian, 而x64架构的CPU基本上使用的是大端。示例代码 大小端单元测试用例。小端LittleEndian。Debug运行示意图。
2024-05-19 13:36:24 366
原创 golang一键打包macos, linux, windows 应用程序 shell脚本
golang一键打包各个平台可执行应用程序shell脚本, 可自定义输出文件名,自动一键打包3大平台可执行应用程序。保存以上代码到你的项目跟目录,如 build.sh 然后执行。在target目录下就会生成以下3个可执行文件。
2024-05-19 12:28:45 147
原创 golang中的位运算 << >> ^ 高位数,低位数示例
在golang的开发中,特别是涉及算法的开发中经常就会用到位运算, 今天介绍 以下几个位运算左右移位运算和高位数低位数的关系。
2024-05-19 12:02:20 301
原创 使用protoc生成protobuf文件时异常 Expected top-level statement (e.g. “message“) 解决方法
2. proto文件编码问题?将你的proto文件内容拷贝,然后粘贴到记事本中以utf-8编码重新保存;1. 确认你的protobuf版本和你写的proto文件是否匹配,版本不匹配的话切换为对应的版本;依赖的版本可以在安装后到 go.mod 文件中修改为你想要的,然后在执行 go mod tidy。
2024-05-18 13:38:21 163
原创 protoc-gen-go-grpc: program not found or is not executable 解决方法
这个的原因就是你当前的GOPATH/bin目录下面没有对应的可执行文件 protoc-gen-go-grpc ,执行以下命令安装即可:go get google.golang.org/grpc/cmd/protoc-gen-go-grpc
2024-05-18 13:27:01 88
原创 macos brew安装多版本protobuf,切换指定版本protobuf 为默认版本方法
protobuf 不同的版本语法相差很大, 而在不同的项目中可能使用的protobuf版本也不同,所以我们的电脑就可能需要安装多个版本的protobuf, 下面介绍macos下如何通过brew安装多版本和设置想要的默认版本的方法。首先使用命令brew list|grep protobuf查看一下当前的protobuf安装情况。再次执行 protoc --version 查看应该就是你想要的版本了。如果有多个版本的protobuf, 则将你想要的版本设置为默认的版本,然后在重新链接想要的默认版本。
2024-05-18 13:21:31 182
原创 golang xml文件转struct结构体,结构体转xml字符串使用注意事项和单元测试用例
go语言中的xml和结构体相互转换 单元测试用例,演示了xml和struct的相互转换和xml文件读取,单元测试用例编写等技术。
2024-05-17 16:53:11 186
原创 panic: pq: permission denied for sequence xxx_seq 异常解决方法
也可以直接进入数据库后执行命令授权。test 替换为你的当前用户名。
2024-05-17 12:15:41 117
原创 golang使用单元测试来测试http方法(w http.ResponseWriter, r *http.Request)goweb中定义的方法
【代码】golang使用单元测试来测试http方法(w http.ResponseWriter, r *http.Request)goweb中定义的方法。
2024-05-16 22:25:06 247
原创 golang中使用make初始化slice切片时的len切片长度和cap切片容量的区别和注意事项
5. 如果定义的切片是用于从Reader中读取数据,则在定义时len必须为0(如果不为0,则在你读取的数据中就会有N个无意义零值存在), cap为你想要读取的数据的长度, 如果你在初始化时len和cap设置了一样的值,则你是无法从Reader中读取数据的。如: make([]int, 0, 10) 这里的 0 就是切片长度len,0 表示暂无数据, 10 表示的是切片的容量 cap , 表示这个切片最多只能放多少个数据。6. 默认情况下make初始化时的cap如果不指定,则和len是一样的。
2024-05-16 10:49:38 193
原创 golang http请求返回 io.ReadCloser 数据读取和编码转换为utf8 注意事项
在go语言中我们发送一个http请求后, 我们需要通过resp返回体中的Body对象(是一个 io.ReadCloser对象)来对请求返回的数据进行读取。6. go中统一数据编码为utf-8 , 如 charset.NewReader(reader, resp.Header.Get("Content-Type")) 可以将获取的内容。b = append(b, 0)[:len(b)] 这里先是使用append向切片增加一个0 然后接着在对这个进去进行切片 把刚刚增加的0去除。3. 在循环体内通过。
2024-05-15 21:58:54 190 1
原创 golang template: “xxx.html“ is an incomplete or empty template 解决方法
这个异常一般是因为在使用 template.New("xxx.html") 时这里的名称非真实存在的视图文件名导致, 这个地方有点坑, 明明ParseFiles函数已经指定了视图路径了,而这里的New里面的名字居然还必须是你后面指定的视图路径中的文件名!
2024-05-15 12:38:59 144
原创 一个函数彻底解决vscode中运行或者调试go语言代码时相对路径视图文件路径不一致导致的异常问题
go template中函数ParseFiles 里面的filenames这里的文件路径可以是相对路径也可以是绝对路径,相对路径是相对于当前go run或者exe所在的路径, 所以当你以不同的方式运行你的代码时这个路径就会改变,从而导致找不到模板问题。
2024-05-15 12:27:32 257
原创 golang html/template模板中使用自定义函数/方法的2种方法总结
函数//t, _ := time.Parse(DF, time.Now().GoString()) // 演示 将字符串解析为时间对象return tstr // 返回格式后的时间字符串// 将自定义的函数放入到模板的FuncMap中tpl := template.New("abc.html").Funcs(fmap) // 将自定义函数绑定到模板函数map里面if err!
2024-05-15 12:14:18 304
原创 golang 中在for循环体内使用select case <-time.After定时器问题
在go语言的代码中,我们经常会看到在在for循环体内使用select case
2024-05-14 21:44:33 416
原创 使用python内置的http.server快速启动一个web服务器的方法
在开发的时候经常需要我们启动一个web服务器来进行页面调试或者给其他小伙伴提供一些文件下载, 今天给大家介绍的是无需任何代码, 也无需其他工具, 只要你的电脑上面安装了python 就可以直接在命令行通过一行简单的命令开启一个功能强大的简单 web server.只需要一行命令就可以启动一个web server: python -m http.server。
2024-05-14 19:41:58 266
原创 go语言控制goroutine协程退出的2种方法总结
上面2种方式, 第一种实现起来比较简单,可少写一些代码, 但是性能相比第二种方式要低一些,因为第一种方式里面使用了race,原子状态维护和不少unsafe的方法(见后面的WaitGroup源码参考)。第二种方式代码稍微复杂,但是效率较高,控制也比较灵活。sync.WaitGroup源码参考import ("unsafe"//////if v < 0 {if w!w!= 0;
2024-05-14 11:25:47 796
原创 go语言exec format error, Failed to launch: could not launch process: not an executable file异常解决方法
golang开发的程序在运行时出现 exec format error 这个异常就表示运行平台不一致,即打包时的go环境为CGO_ENABLED=0 GOOS=linux 而你运行的平台不是linux系统(注意linux下的应用和mac的应用是不同的), 解决方法就是换成相关平台的执行文件。go通过使用不同的环境变量可以打包不同平台运行的程序,当然运行和调试的时候如果你的环境变量不对应也是无法运行的。
2024-05-14 09:45:58 181
原创 gyp ERR! stack Error: There was a fatal problem while downloading/extracting the tarball 解决方法
gyp ERR!stack Error: There was a fatal problem while downloading/extracting the tarball 这个错误提示就是告诉我们在解压下载的文件的时候发生了异常, 可检查相关的文件是否正常,如不正常可能是项目中依赖的文件版本变更,原来的文件失效了,删除项目下的 xxx.lock文件后重新下载即可。
2024-05-13 11:32:28 112
原创 ERROR: Failed to set up Chromium r982053! Set “PUPPETEER_SKIP_DOWNLOAD“ env variable to skip解决方法
ERROR: Failed to set up Chromium r982053! Set "PUPPETEER_SKIP_DOWNLOAD" env variable to skip解决方法
2024-05-13 10:55:02 478
原创 age文件加密工具核心算法欣赏 据说美国白宫也在使用该加密算法
最近github上面比较火的一个文件加密工具age , 据说美国白宫也在使用该工具, 是一款go语言实现的文件加密格式化工具, 可使用ssh key 解密, ssh 是目前公认的且使用最为频繁的一种加密手段,在互联网上的任何地方几乎都能看到他的身影, 下面我们就来先生一个这个比较火的age文件加密工具的核心算法把, 看看你你能看懂否?github项目地址。
2024-05-12 10:44:02 285
原创 go语言中io操作中的 io.Reader 和 io.Writer的获取方法 总结
我们在对文件进行io操作的时候,经常看到需要我们传递一个 io.Reader 或者 io.Writer 对象作为读写的入参, 那么我们该如何或者这些个RW对象呢? 其实很简单,你只需要查找一下哪些对象实现了 Read或者 Writer方法,那么你只需要创建一个实现了这2个方法之一的对象 , 那他就可以是一个 io.Reader 或者 io.Writer 。当然最常见的应该就是我们的 os.File对象了, 另外还有 bufio.Reader, bytes.Buffer 等对象都可以作为io的RW入参。
2024-05-12 10:09:27 225
原创 golang函数默认参数
方法: 将我们要用到的默认参数全部定义为一个结构体,在结构体里面给各个字段赋默认值, 然后在什么参数的时候使用 可变参数, 如: func MyDemo( args ... MyStru),数字类型的零值都是0, 字符串零值是空字符串, 布尔零值是false, 其他引用类型的零值是nil.和java和php等编程语言不通, go语言里面函数的形参是。虽然go没有默认参数,但是对于他的每个参数都一个默认的。来实现函数的默认参数 而且是可变的默认参数。注意必备里面的参数是可以。的, 而且在go语言里面。
2024-05-12 08:31:55 316
原创 vscode go语言开发中在任意包运行和调试代码 Example使用方法
一般情况下我们在进行go语言开发的时候我们都需要创建一个main方法和main包才能运行go代码, 针对这个问题,go语言给我们内置了功能强大的testing测试框架, 其中一个很有意思的Example测试就非常的方便使用。他不管你在什么包,也不管你什么方法,都可以使用他 ,_test.goExample就可以方便快捷的运行和调试你的代码。
2024-05-11 22:35:42 214
原创 golang中变量交换的2种方式
2. 利用golang中的一个很特别变量的定义方式,即 我们可以使用逗号来批量定义和赋值变量来进行变量的交换,这个在其他语言里面是没有的。变量的交换在我们对数据进行排序时是必须要用到的技术, 今天就给大家介绍2种go语言中交换变量的方式。总结: 建议大家使用第2种方式, 这个简洁明了,而且效率也高, 这也算是学以致用了!1. 使用传统方式定义一个中间变量来进行变量的交换。
2024-05-11 22:18:45 275
原创 go语言切片slice使用细节和注意事项整理
go语言中切片slice的使用是最为频繁的,效率也是最高的, 今天就给大家说说我们在使用过程中会忽略的一些细节。 先普及一下slice的核心基础知识, go语言中的切片是引用类型, 其底层数据的存储实际上是存储在一个数组 上(这个和他的数据类型 引用 是相关的 他底层就是引用的数组), 而数组的大小一旦定义其大小就是不可改变的,
2024-05-11 21:44:58 721
原创 go使用redis连接池技术操作redis数据库实例
我们都知道,在程序开发中,网络链接的开销是比较大的, 当我们在链接redis 时,如果是操作一次就执行一次DIal拨号,那性能是很低的,redis的效率瞬间就被你降低了50%, 提速redis使用性能的第一步就是使用连接池技术
2024-05-11 21:11:42 320
原创 go语言函数/方法入参对象方法 接口interface约束示例
go语言函数/方法入参对象方法 接口interface约束示例 , go语言使用泛型接口约束可以约束指定的对象参数 必须具备指定的方法 或者必须实现了指定的接口 1个或者多个接口(通过接口继承实现), 这个在面向api的接口编程中应用非常广泛,也非常实用
2024-05-10 12:06:29 304
原创 go语言在任意包中快速执行代码运行和debu的方法,不用main函数,也不用main包
方法很简单,使用go自带的测试框架,新建一个以 _test.go结尾的文件或者修改你原来的文件以_test.go结尾 , 然后将函数名称修改为以Xxx(t *testing.T) 或者以Xxx开头的名称 Xxx为你原来的函数名后神奇的事情就出现了, 在你的函数上方就会出现 run test | run debug按钮 直接点一下就运行或者debug你的代码了。Test。
2024-05-10 11:57:36 256
原创 go导入包时提示no required module provides package解决方法
go导入包时提示no required module provides package解决方法
2024-05-09 18:10:49 310
原创 单机轻松支持百万并发的go协程的简单tcpsocket服务端客户端通信小程序示例源码
单机轻松支持百万并发的go协程的简单tcpsocket服务端客户端通信小程序示例源码。
2024-05-09 17:29:33 189
原创 golang 反射,泛型参数类型约束,泛型结构体约束,单元测试综合示例
golang中有关反射, 泛型约束和单元测试的综合案例,废话不多说直接上代码。单元测试 测试用例文件名:modifydemo/modify_test.go。文件名:modifydemo/modify.go。运行单元测试 go test -v。
2024-05-09 11:50:00 377
原创 golang内置包里面的sort.Slice 切片排序函数使用示例
var s1 = []int{133,144,21,69,83,37,56,38,68,123,23,89,170,8,76,120} // 这个就是要排序的int切片。参数说明 这个函数有2个参数, 第一个是你要进行排序的slice切片,地个要传递一个函数,这个函数就是你要对你的数据进行怎么样的排序。go语言里面用的最多的数据类型应该是切片Slice了, 今天就给大家介绍这个go内置包里面的切片排序函数的使用方法。怎么样,是不是很简单, 其他2个函数用法可参考后面的源码使用。
2024-05-08 15:59:38 576
原创 go语言在使用空接口interface{}接收变量后取值 undefined (type interface{} has no field or method Name) 解决方法
golang里面的空接口interface{} 可以存放任意类型的数据,但是在取值的时候,我们必须要使用类型断言后才能得到相应的对象, 如果我们在取出数据时没有经过数据类型断言就直接使用就会报。解决方法就是在取出数据后对数据进行类型断言。
2024-05-08 15:43:31 187
k2p MT7621A适用的智能路由器OpenWrt 23.05.2最新版刷机固件
2024-01-09
macos中使用的Burpsuite Pro 2023.12.1 中提取的JAVA运行时 jre 20.0.2
2023-12-22
Icu4c 73 brew自定义版本安装源
2023-09-11
Axure RP元件库大全-上千个axure元件库-史上最全.7z
2019-06-25
RedisDesktopManager Win 0.9.8.1156 redis的可视化管理工具
2018-11-06
myeclipse2017 和谐补丁 + 闪退补丁 mac win系统通用
2017-12-26
CI辅助函数 PHP自动获取用户地理位置信息的函数 支持淘宝, 新浪等多个IP数据库
2016-09-25
CodeIgniter 3中文手册 --CI 3.0 官方简体中文版用户手册.chm
2016-09-25
ThinkPHP5.0 php7 Auth权限认证管理模块
2016-04-06
eAccelerator for windows php 5.3.XX VC9 PHP加速模块下载
2015-07-10
ModSecurity Handbook使用手册
2015-07-10
codecanyon_super-ajax-contact-form PHP超级邮件联系表单
2015-04-19
安卓ROM system.img 解包与打包工具unyaffs mkyaffs2image
2014-12-02
Magic Zoom Plus v4.5.28 图片放大镜去水印破解 学习版
2014-05-07
1200元的SEO电子书教程内容.doc
2014-05-05
大型网站架构演变和知识体系.pdf
2011-11-28
基于电子病历的医疗质量控制.pdf
2011-11-28
百度影音服务端 视频服务器V1.0.2.23 最新版
2011-10-23
alibaba.com new PHP clone 英文版阿里巴巴克隆 PHP完整版源码
2010-03-23
CuteFTP 8.3 Professional简体中文纯录色注册版
2008-10-12
ASP PHP在线解压工具
2008-02-19
IIS6+JSP配置工具
2007-12-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人