# GoStudy **Repository Path**: liguanzhi/go-study ## Basic Information - **Project Name**: GoStudy - **Description**: Golang学习 - **Primary Language**: Go - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-06-28 - **Last Updated**: 2021-12-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # GoStudy #### 介绍 Golang学习,存放本人在Golang学习过程中积累的代码和项目 #### Go语言说明 - 常用Go指令 1、go build 编译自身包和一来包 eg: 打包linux的包 CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o svcRoute ../internal/main 2、go install 编译并安装自身包和依赖包 3、go doc 生成代码文档 4、gofmt 格式化代码 5、go fix 将代码从旧的发行版迁移到新的发行版 6、go test 单元测试 7、go run 直接运行go程序 - 静态语言和动态语言 1、静态语言是在编译时变量的数据类型即可确定的语言,例如C++、Java等 2、动态语言是在运行时确定数据类型的语言,例如Python、Shell等 3、Go=C+Python,既有C静态语言程序的运行速度,又能达到Python动态语言的快速开发 - Go语言的SDK是什么? SDK就是软件开发工具包,我们做Go开发,首先需要先安装并配置好SDK #### 变量 - 变量的使用步骤 1)声明变量(又名定义变量) 2)非变量赋值 3)使用变量 - 变量使用的三种方式 ``` var i int var num = 10.11 name := "tom" //常用 ``` #### 使用说明 1. xxxx 2. xxxx 3. xxxx #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) ### go module使用 - 1、go module配置开启 (1)设置变量 go env -w GO111MODULE=on go env -w GOPROXY="https://goproxy.io" (2) IDE设置(Goland) Preferences -> Go ——> Go Modules ——> 勾选"Enable Go Modules integration" - 2、新建一个项目project1(目录) - 3、初始化项目 go mod init project1 - 4、编码 - 5、编译+运行 ### Gin 学习 > 轻量级的web框架、高性能的API框架 > 官网:https://gin-gonic.com/ ### GORM 学习 > 关系型数据库操作 > 官网:https://gorm.io/zh_CN/ ### MYSQL 数据库常用操作 ### 项目框架设计 - 一级目录: 项目名称:projectName - 二级目录: internal //代表的是内部的业务代码,与之对应的是external - 二级目录: bin //放编译后的二进制文件、和启动脚本 - 三级目录: main //main函数main.go放到这个目录下,只负责初始化路由和监听端口操作 route //只负责注册路由 controllers //控制器负责处理业务逻辑 midlewares // 存放中间件代码 templates //放置模版文件 static //存放静态文件 model // 一个功能想在多个控制器、或者多个模版里面复用的话,我们可以将公共的功能单独抽取出来作为一个model