作者:matrix
被围观: 2,966 次
发布时间:2023-07-07
分类:Golang |
3 条评论 »
Golang中嵌入结构体类型有两种:值或指针
结论
创建 含内嵌指针struct实例时,必须手动声明嵌入的结构指针。
伪代码如下:
package main
type BaseDao struct{name string}
# 匿名结构体字段BaseDao
type OptDao1 struct{BaseDao} # 嵌入值
type OptDao2 struct{*BaseDao} # 嵌入指针
func main(){
opt := OptDao2{BaseDao:&BaseDao{}} //必须手动声明嵌入的结构指针
}
上面代码中OptDao1、OptDao2嵌入了BaseDao结构体,主要区别只有嵌......
作者:matrix
被围观: 711 次
发布时间: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为接......
作者:matrix
被围观: 563 次
发布时间: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......
作者:matrix
被围观: 1,502 次
发布时间: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
s......
作者:matrix
被围观: 1,233 次
发布时间:2023-02-10
分类:Golang |
无评论 »
Golang支持跨平台编译,比起python只能编译为当前平台的二进制文件要好太多。
go build help
$ go help build
usage: 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......
作者:matrix
被围观: 1,270 次
发布时间:2023-01-31
分类:Golang |
一条评论 »
变量声明
Golang属于强类型语言,且定义的变量一定要被使用不然会编译报错。
Golang可以使用:=的语法糖来自动实现类型推断,一般都在非全局变量中使用。var的声明多用在全局变量声明。
变量赋值后必须使用,否则编译失败
例外: _变量 表示占位变量。不能赋值和调用,仅为占位作用。
var a int = 16
var a = 16 //类型自动推断
//等同于短变量声明
a := 16
//多变量快捷声明
var a, b int
var a, b, c = 16, true, "str" //可以不同类型
变量作用......
作者:matrix
被围观: 1,468 次
发布时间:2022-12-31
分类:零零星星 |
无评论 »
很多时候需要搭建简单的socket代理或者其他中转隧道,方便学习开发。
gost是用golang实现的隧道代理工具,功能强大,也有docker环境可以快速使用。
github
https://github.com/go-gost/gost
docker镜像
ginuerzh/gost
gogost/gost
两个docker镜像应该都可信,来源于作者/官方
前置条件
外网服务器 + 中转服务器(可选) + 域名 + 域名SSL证书
下面用中转/直连方案实现隧道代理,记录下~
服务端(outside server)
外网落地服务器
a. 直连方......
作者:matrix
被围观: 2,500 次
发布时间: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为组件库 可取消......