Golang的结构体类型struct

作者:matrix 被围观: 1,211 次 发布时间:2023-06-24 分类:Golang | 一条评论 »

熟悉面向对象语言的话,Golang的struct结构体有点像面向对象编程中的类。但这两者不是完全一样,只能说都有继承、封装、多态的特点。 结构体(struct) 结构体可以将零个或多个任意类型的值聚合在一起,能描述多个数据类型 type Person struct { name string age int value string address string} 成员方法和接收者 func (p *Person) setName(name string) { p.name = name} 说明:setName 为声明的方法p *Person为接收者(指针类型)struc类型新增成员方法的语法很另类,像是单独给struct做绑定,绑定的时候会有接收者来指定当前实例类型。Golang其实可以给任何类型创建成员方法: type MyInt intfunc (i MyInt) IsZero() ......

GitHub Action自动release发布版本 + docker镜像打包

作者:matrix 被围观: 1,098 次 发布时间:2023-06-23 分类:零零星星 | 无评论 »

https://github.com/Hootrix/keyword_alert_bot 针对keyword_alert_bot项目早就有添加docker镜像的想法,这次趁着有机会就完成这个feature,也算是使用下GitHub的CI/CD。我的想法是利用github action功能,推送代码更新后自动打包docker镜像且安装所有依赖。打包的时候把最新版本号写入到代码中(当前日期作为版本号)。使用者把docker镜像pull后可以轻松运行整个bot。 流水线配置 项目的 .github/workflows/main.yml路径下新建文件: name: CI/CD Pipelineon: push: # 指定分支push操作触发流水线 branches: # - dev.20230419 # debug - masterjobs: # 自定义job流水线名字 build-and-push: # 指定运行环境 ubuntu......

构建自己的Python包到Pypi

作者:matrix 被围观: 3,204 次 发布时间:2023-04-28 分类:Python | 4 条评论 »

安装构建工具 首先确保安装了setuptools 和wheel。如果没有就运行以下命令安装: $ pip3 install setuptools wheel twine 配置项目 目录结构可参考: https://github.com/Hootrix/text-box-wrapper 项目中包含以下文件: setup.py:包含项目的元数据和依赖关系。README.md:项目的描述文件。LICENSE:选择一个许可证并将其放在此文件中。wrapper.py:自己定义的文件,包含功能代码__init__.py 包定义,以及可引入的方法 配置setup.py setup.py可配置作者、readme、仓库等信息 import osfrom setuptools import setup, find_packageswith open(os.path.join(os.path.dirname(__file__), "README.md"), encoding="utf-8") as f: long_de......

go build 交叉编译

作者:matrix 被围观: 1,927 次 发布时间:2023-02-10 分类:Golang | 无评论 »

Golang支持跨平台编译,比起python只能编译为当前平台的二进制文件要好太多。 go build help $ go help buildusage: go build [-o output] [build flags] [packages]... 默认编译(输出当前平台二进制文件) $ go build -ldflags="-s -w" main.go && upx -9 ./main 说明:upx 该工具用于压缩二进制文件 -9 表示最高压缩率(选择范围为1-9) 跨平台编译 Mac/Linux系统下: 输出Linux可执行文件: $ CGO_ENABLE=0 GOOS=linux GOARCH=amd64 go build -ldflags='-s -w -extldflags "-static -fpic"' -o main-linux-amd64 main.go && upx -9 ./main-linux-amd64 输出Windows可执行文件: $ CGO_ENABLE=0 GOOS=windows GOARC......

golang的变量声明

作者:matrix 被围观: 1,728 次 发布时间:2023-01-31 分类:Golang | 一条评论 »

变量声明 Golang属于强类型语言,且定义的变量一定要被使用不然会编译报错。Golang可以使用:=的语法糖来自动实现类型推断,一般都在非全局变量中使用。var的声明多用在全局变量声明。变量赋值后必须使用,否则编译失败例外: _变量 表示占位变量。不能赋值和调用,仅为占位作用。 var a int = 16var a = 16 //类型自动推断//等同于短变量声明a := 16//多变量快捷声明var a, b intvar a, b, c = 16, true, "str" //可以不同类型 变量作用域 { var b string = "hi~" fmt.Println("asd") fmt.Println("b->", b) } num := 12 { a, num := false, 5 // 这里的num会被认为是一个新变量 b := 100 fmt.Println(a, num, b)......

使用gost搭建隧道

作者:matrix 被围观: 2,194 次 发布时间:2022-12-31 分类:零零星星 | 无评论 »

很多时候需要搭建简单的socket代理或者其他中转隧道,方便学习开发。gost是用golang实现的隧道代理工具,功能强大,也有docker环境可以快速使用。 github https://github.com/go-gost/gost docker镜像 ginuerzh/gostgogost/gost 两个docker镜像应该都可信,来源于作者/官方 前置条件 外网服务器 + 中转服务器(可选) + 域名 + 域名SSL证书下面用中转/直连方案实现隧道代理,记录下~ 服务端(outside server) 外网落地服务器a. 直连方案配置 $ docker run --rm -it \ --net=host \ -v /etc/letsencrypt:/etc/letsencrypt:ro \ ginuerzh/gost -L "mwss://USERNAME:PASSWORD@:443?cert=/etc/letsencrypt/live/wwww.hhtjim.com......

tailwind + daisyui 开发初始化

作者:matrix 被围观: 3,916 次 发布时间:2022-10-18 分类:零零星星 | 2 条评论 »

环境:Mac + vscode + docker 创建项目和容器镜像 基于nodejs的docker镜像安装tailwindcss,daisyui新建目录tailwind-project $ mkdir -p ./tailwind-project/src/ ./tailwind-project/dist/$ cd ./tailwind-project/$ docker run -it --rm -v $(pwd):/data -w /data node:latest sh -c 'npm install -D tailwindcss tailwindcss-cli ;npm i daisyui;npx tailwindcss-cli init;bash' install -D 参数表示dev daisyui为组件库 可取消显示「Created Tailwind css config file: tailwind.config.js」 即创建成功安装成功的npm包: root@4e27e6ae691b:/data# npm listdata@ /data+-- daisyui@2.31.0+-- tailwindcss-cli@0.1.2`-- tailwind......

简单好用的SLA探活工具 - EaseProbe

作者:matrix 被围观: 2,956 次 发布时间:2022-10-02 分类:零零星星 | 一条评论 »

SLA探活的需求很广泛,简单的可以自己实现。但是专门独立的探活工具倒是极少~EaseProbe由GO编写,不需要其他依赖支持直接使用二进制程序运行。这几天测试用来给api接口、ssl证书、web 200探活,好用~ github仓库 https://github.com/megaease/EaseProbe支持HTTP、TCP、SSH、SSL证书、各种数据库/消息中间件服务探活,和email、SLAck、Discord、Telegram、飞书...的通知。还支持消息通知和定时发送报表,可以自定义分类告警渠道 配置config.yaml 参照官方配置,新建文件config.yaml配置SSL证书过期检测、WEB HTTP200检测、接口HTTP状态检测: http: # http探活 # 默认监控网页HTTP是否为200OK - name: "HHTJIM.COM OK" url: https:......