- 博客(152)
- 资源 (34)
- 收藏
- 关注
原创 golang判断字符串是否base64编码的字符串 可准确判断是或否
非常简单的判断一个字符串是否base64编码的方法,就是使用base64来尝试解码,如果成功一定是,否则一定不是
2024-05-25 09:24:12 22
原创 go语言中switch分支选择语句的4种用法总结
go语言中switch分支选择语句可以有4种不同的用法,有和其他语言类似的地方也有go语言特有的使用方法
2024-05-25 08:51:20 41
原创 go语言中for的4种循环形式总结
for a < b { // 条件式的for, 当条件成立时执行 相当于其他语言里面的 while。for { //这个就是一个“死循环”,注意必须要有 break条件,否则就真成死循环了。// 这里的i就是索引, v就是值, x可以是字符串,切片,map等。//就普通的各个语言里面通用的遍历方式。
2024-05-25 08:43:34 43
原创 go语言中同一for循环体内的多个初始变量和多个自增变量用法示例
for 后面的多个初始化变量使用的是逗号分隔的批量赋值操作,多个变量自增自减使用 加减运算符和逗号分隔。
2024-05-24 21:40:51 87
原创 golang信号通知 signal.Notify NotifyContext完整示例
SIGHUP、SIGINT或SIGTERM信号会导致程序退出。SIGQUIT、SIGILL、SIGTRAP、SIGABRT、SIGSTKFLT、SIGEMT或SIGSYS信号会导致程序退出并进行堆栈转储。SIGTSTP、SIGTTIN或SIGTTOU信号获取系统默认行为(这些信号由shell用于作业控制)。SIGPROF信号由Go运行时直接处理以实现运行时。CPU配置文件。将捕捉到其他信号,但不会采取任何行动。
2024-05-24 10:07:45 146
原创 golang内置模块os常用操作函数 按功能分类整理
go语言中我们最常用的一个内置模块os模块,这个里面的函数虽然很多,但是分类整理后其实也就环境变量,用户,目录,文件进程和错误类型这几类,本文按照功能分类整理方便记忆和使用。func Exit(code int) 退出当前程序。
2024-05-24 09:55:46 608
原创 golang中使用最多的函数TOP100排行榜
你知道go语言中使用最多的100个函数吗?我们通过大数据算法在对比了100多万个项目后得出以下TOP100函数使用排行榜
2024-05-21 17:26:35 409
原创 go语言中的一个特别的语法 //go:embed 可将将静态文件内容读取到string, []byte和 embed.FS 变量并直接打包到exe包中
上面我们将我们的版本信息存放到 version.txt文件中, 打包的时候编译器就会自动读取这个文件并赋值给对应的变量 version。这个embed支持将读取的文件赋值给。go语言中的一个特别的语法。
2024-05-20 18:52:43 164
原创 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 735
原创 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 125
原创 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 603
原创 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 370
原创 golang一键打包macos, linux, windows 应用程序 shell脚本
golang一键打包各个平台可执行应用程序shell脚本, 可自定义输出文件名,自动一键打包3大平台可执行应用程序。保存以上代码到你的项目跟目录,如 build.sh 然后执行。在target目录下就会生成以下3个可执行文件。
2024-05-19 12:28:45 227
原创 golang中的位运算 << >> ^ 高位数,低位数示例
在golang的开发中,特别是涉及算法的开发中经常就会用到位运算, 今天介绍 以下几个位运算左右移位运算和高位数低位数的关系。
2024-05-19 12:02:20 334
原创 使用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 165
原创 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 108
原创 macos brew安装多版本protobuf,切换指定版本protobuf 为默认版本方法
protobuf 不同的版本语法相差很大, 而在不同的项目中可能使用的protobuf版本也不同,所以我们的电脑就可能需要安装多个版本的protobuf, 下面介绍macos下如何通过brew安装多版本和设置想要的默认版本的方法。首先使用命令brew list|grep protobuf查看一下当前的protobuf安装情况。再次执行 protoc --version 查看应该就是你想要的版本了。如果有多个版本的protobuf, 则将你想要的版本设置为默认的版本,然后在重新链接想要的默认版本。
2024-05-18 13:21:31 242
原创 golang xml文件转struct结构体,结构体转xml字符串使用注意事项和单元测试用例
go语言中的xml和结构体相互转换 单元测试用例,演示了xml和struct的相互转换和xml文件读取,单元测试用例编写等技术。
2024-05-17 16:53:11 267
原创 panic: pq: permission denied for sequence xxx_seq 异常解决方法
也可以直接进入数据库后执行命令授权。test 替换为你的当前用户名。
2024-05-17 12:15:41 128
原创 golang使用单元测试来测试http方法(w http.ResponseWriter, r *http.Request)goweb中定义的方法
【代码】golang使用单元测试来测试http方法(w http.ResponseWriter, r *http.Request)goweb中定义的方法。
2024-05-16 22:25:06 274
原创 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 197
原创 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 197 1
原创 golang template: “xxx.html“ is an incomplete or empty template 解决方法
这个异常一般是因为在使用 template.New("xxx.html") 时这里的名称非真实存在的视图文件名导致, 这个地方有点坑, 明明ParseFiles函数已经指定了视图路径了,而这里的New里面的名字居然还必须是你后面指定的视图路径中的文件名!
2024-05-15 12:38:59 149
原创 一个函数彻底解决vscode中运行或者调试go语言代码时相对路径视图文件路径不一致导致的异常问题
go template中函数ParseFiles 里面的filenames这里的文件路径可以是相对路径也可以是绝对路径,相对路径是相对于当前go run或者exe所在的路径, 所以当你以不同的方式运行你的代码时这个路径就会改变,从而导致找不到模板问题。
2024-05-15 12:27:32 260
原创 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 308
原创 golang 中在for循环体内使用select case <-time.After定时器问题
在go语言的代码中,我们经常会看到在在for循环体内使用select case
2024-05-14 21:44:33 418
原创 使用python内置的http.server快速启动一个web服务器的方法
在开发的时候经常需要我们启动一个web服务器来进行页面调试或者给其他小伙伴提供一些文件下载, 今天给大家介绍的是无需任何代码, 也无需其他工具, 只要你的电脑上面安装了python 就可以直接在命令行通过一行简单的命令开启一个功能强大的简单 web server.只需要一行命令就可以启动一个web server: python -m http.server。
2024-05-14 19:41:58 267
原创 go语言控制goroutine协程退出的2种方法总结
上面2种方式, 第一种实现起来比较简单,可少写一些代码, 但是性能相比第二种方式要低一些,因为第一种方式里面使用了race,原子状态维护和不少unsafe的方法(见后面的WaitGroup源码参考)。第二种方式代码稍微复杂,但是效率较高,控制也比较灵活。sync.WaitGroup源码参考import ("unsafe"//////if v < 0 {if w!w!= 0;
2024-05-14 11:25:47 800
原创 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 186
原创 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 115
原创 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 489
原创 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 236
原创 golang函数默认参数
方法: 将我们要用到的默认参数全部定义为一个结构体,在结构体里面给各个字段赋默认值, 然后在什么参数的时候使用 可变参数, 如: func MyDemo( args ... MyStru),数字类型的零值都是0, 字符串零值是空字符串, 布尔零值是false, 其他引用类型的零值是nil.和java和php等编程语言不通, go语言里面函数的形参是。虽然go没有默认参数,但是对于他的每个参数都一个默认的。来实现函数的默认参数 而且是可变的默认参数。注意必备里面的参数是可以。的, 而且在go语言里面。
2024-05-12 08:31:55 317
原创 vscode go语言开发中在任意包运行和调试代码 Example使用方法
一般情况下我们在进行go语言开发的时候我们都需要创建一个main方法和main包才能运行go代码, 针对这个问题,go语言给我们内置了功能强大的testing测试框架, 其中一个很有意思的Example测试就非常的方便使用。他不管你在什么包,也不管你什么方法,都可以使用他 ,_test.goExample就可以方便快捷的运行和调试你的代码。
2024-05-11 22:35:42 215
原创 golang中变量交换的2种方式
2. 利用golang中的一个很特别变量的定义方式,即 我们可以使用逗号来批量定义和赋值变量来进行变量的交换,这个在其他语言里面是没有的。变量的交换在我们对数据进行排序时是必须要用到的技术, 今天就给大家介绍2种go语言中交换变量的方式。总结: 建议大家使用第2种方式, 这个简洁明了,而且效率也高, 这也算是学以致用了!1. 使用传统方式定义一个中间变量来进行变量的交换。
2024-05-11 22:18:45 276
原创 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
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关注的人