go

go grpc

go

安装go环境 略。。。 安装protobuf brew install protobuf cuiwei@weideMacBook-Pro ~ % protoc --version libprotoc 3.21.5 安装Go plugins for the protocol compiler $ go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.28 $ go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.2 export PATH="$PATH:$(g...

cli和双击go的二进制文件得到不同的路径

go

先看代码 func main() { root, err0 := os.Getwd() if err0 != nil { println("empty") } println("dir: " + root) } 生成可执行文件 cuiwei@weideMacBook-Pro demo % go build -o app2 . cli的方式执行 cuiwei@weideMacBook-Pro demo % ./app2 dir: /Users/cuiwei/GolandProjects/demo 双击 app2 的方式 Last login:...

alpine容器中运行go的二进制文件

go

问题重现 /data # ls app /data # ./app /bin/sh: ./app: not found 解决办法 方法一 查看下依赖库 /data # ldd app /lib64/ld-linux-x86-64.so.2 (0x7ff4fc486000) libpthread.so.0 => /lib64/ld-linux-x86-64.so.2 (0x7ff4fc486000) libc.so.6 => /lib64/ld-linux-x86-64.so.2 (0x7ff4fc486000) /data # ls /lib64/ld-linux-x86-64.s...

gin config

go

这里我选择json文件作为项目的配置文件 { "app_name": "app", "app_model": "debug", "app_host": "aa.com", "app_port": "8097", "database": { "dsn": "root:@tcp(docker-mysql:3306)/test?charset=utf8&parseTime=True&loc=Local&timeout=10ms" }, "redis_config": { "host": "docker-redis", "port": ":6379"...

gorm 基本操作

go

type Test struct { Id int `json:"id"` Name string `json:"name"` Memo string `json:"memo"` CreateTime string `json:"create_time"` UpdateTime string `json:"update_time"` DeleteTime string `json:"delete_time"` } // 设置表名 func (Test) TableName() string { return "cw_test" } ...

go 数字和字符串相互转换

go

字符串转数字 方法1 userId := "100" userId2, _ := strconv.Atoi(userId) //如果userId不是数字字符串,结果为0 方法2 //golang strconv.ParseInt 是将字符串转换为数字的函数,功能灰常之强大. //参数1 数字的字符串形式 //参数2 数字字符串的进制 比如二进制 八进制 十进制 十六进制 //参数3 返回结果的bit大小 也就是int8 int16 int32 int64 //func ParseInt(s string, base int, bitSize int) (i int64, err ...

go gin封装redis

go

封装 package cache import ( "fmt" "github.com/go-redis/redis" "time" ) var RedisClient *redis.Client func InitRedis() { RedisClient = redis.NewClient(&redis.Options{ Addr: "localhost:6379", Password: "", DB: 0, DialTimeout: 10 * time.Second, ReadTimeout: 30 * t...

go gin 封装gorm

go

封装 package db import ( "fmt" "gorm.io/driver/mysql" "gorm.io/gorm" ) var Db *gorm.DB func init() { var err error dsn := "root:@tcp(127.0.0.1:3306)/test?charset=utf8&parseTime=True&loc=Local&timeout=10ms" Db, err = gorm.Open(mysql.Open(dsn), &gorm.Config{}) if err != nil { fmt.Printf("my...

go gin上传文件

go

multipart/form-data func Upload(c *gin.Context) { file, err := c.FormFile("file") if err != nil { c.String(500, "上传图片出错") } extName := path.Ext(file.Filename) allowExtMap := map[string]bool{ ".jpg": true, ".png": true, ".gif": true, ".jpeg": true, } if _, ok := allowExtMap[extN...