企业微信代理搭建
在搭建某nas相关的工具时需要通过企业微信自建应用实现通知和下达命令的功能 本文使用Caddy作为代理服务器 代理思路如下: Caddy代理配置如下: # 企业微信填写的代理地址 api.example.com { reverse_proxy 172.17.0.1:3301 } # MP填写的微信服务器...
golang面试题
记录面试遇到的一个有趣的题 问题 写出下面的输出结果和原因 func main() { runtime.GOMAXPROCS(1) count := 10 wg := sync.WaitGroup{} wg.Add(count * 2) for i := 0; i < count; i++ { go func() { fmt.Printf("[%d]", i) wg.Done() }() } for i := 0; i < count; i++ { go func(i int) { fmt.Printf("-%d-", i) wg.Done() }(i) } wg.Wait() } GPT回答 这段代码的输出结果可能会是不确定的,...
如何验证ChatGPT写的代码是否可运行
JS(JavaScript) 首先得到ChatGPT的代码 let name = prompt("What is your name?"); console.log("Hello, " + name + "!"); 直接按F12打开开发者工具,点击控制台,将代码粘贴到控制台内回车即可 HTML+CSS(网页) <!DOCTYPE html> <html> <head> <title>My Centered Div</title> <style> .center { width: 200px; height: 200px; background-color: red; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); }...
golang makefile模板
.PHONY: build build_linux APPNAME = wechatbot all: build build: rm -rf ./build/ make build_linux build_linux: @echo "linux版" export GO111MODULE=on; \ export GOPROXY="https://goproxy.cn,direct"; \ export GOOS=linux; \ export GOARCH=amd64; \ go mod tidy -compat=1.17; \ go build -o ./build/$(APPNAME)_linux/$(APPNAME) main.go cp outText.txt ./build/$(APPNAME)_linux/outText.txt...
使用caddy2,docker-compose快速部署一个自带TLS和HTTP3的网站
使用背景 发现Caddy是我刚刚将博客换了个服务器,一时兴起,听闻IETF已经在今年(22年6月)推出了正式版HTTP3(RFC9114),那就干脆使得博客支持上,但找了半天,基于nginx都没有一个简...
Golang枚举实现,并制成字典反给前端使用
方法 package t import ( "reflect" "strconv" ) type EnumType int8 func GetEnumMap(obj interface{}) (statusMap map[EnumType]string) { ta := reflect.TypeOf(obj) statusMap = make(map[EnumType]string) for i := 0; i < ta.NumField(); i++ { fl := ta.Field(i) statusNum, _ := strconv.Atoi(fl.Tag.Get("enum")) statusMap[EnumType(statusNum)] = fl.Tag.Get("desc") } return } func GetEnumByDesc(obj interface{}, desc string) EnumType { ta := reflect.TypeOf(obj) statusMap := make(map[string]EnumType) for i := 0; i < ta.NumField(); i++ { fl := ta.Field(i) statusNum, _ := strconv.Atoi(fl.Tag.Get("enum")) statusMap[fl.Tag.Get("desc")] = EnumType(statusNum) } return statusMap[desc] } func GetAllStatus() (statusList map[string]interface{}) { statusList = make(map[string]interface{}) for _, v := range GetStatusObj() { statusList[reflect.TypeOf(v).Name()] = GetEnumMap(v)...