Go 关键字之 select select作用Go 里面提供了一个关键字 select,通过 select 可以监听 channel 上的数据流动。 有时候我们希望能够借助 channel 发送或接收数据,并避免因为发送或者接收导致的阻塞,尤其是当 channel 没有准备好写或者读时。select 语句就可以实现这样的功能。 select 的用法与 switch 语言非常类似,由 select 开始一个新的选择块,每个选择条 2024-12-01 Go #Go
Go 关键字之 var 简介在 Go 中,var 关键字用于声明变量。通过使用 var,你可以定义一个或多个变量的类型和初始值。 Go 语言支持多种变量声明的语法,每种语法都有其特定的用途和适用场景。 语法1var 变量名 [类型] [=] [初始值] 示例12345678910111213141516171819202122// 单个变量声明并初始化var name string = "John"// 单个变量声明, 2024-12-01 Go > Go 关键字 #Go #Go 关键字
Go 关键字之介绍 1、关键字关键字即是被 Go 赋予了特殊含义的单词。 Go 一共有 25 个关键字: 12345break default func interface selectcase defer go map structchan else goto 2024-12-01 Go > Go 关键字 #Go #Go 关键字
Goland setting Go GOROOT:Go 安装路径 GOPATH:全局的 GOPATH 路径和本项目的 GOPATH 路径 默认和 go env 中 GOPATH 变量相同 GO Modules: IDEA 执行 go list -m -json 来解决项目的依赖关系并扫描 $GOPATH/pkg/mod 目录(GOMODCACHE 的默认值)查找包。如果它们不存在,IDEA 会执行 go mod downl 2024-11-22 Go #Go
Goland 修改变量,全局同步修改 在 GoLand 中,当你修改一个变量的名称时,所有引用该变量的地方也会自动更新。这是因为 GoLand 支持内置的重构功能,包括重命名(Rename)。 步骤: 将光标置于变量名称上。 按下 Shift+F6(Mac 是 Cmd + F6),或者右击,选择菜单栏中的 Refactor->Rename。 在弹出的重命名对话框中输入新的变量名称。 检查预览窗口中的更改,确保它们都是你想 2024-11-22 Go #Go
01-快速开始 1. GORM 中文文档参考链接 Golang写的,开发人员友好的ORM库。 1.1. 概述 全功能ORM(几乎) 关联(包含一个,包含多个,属于,多对多,多种包含) Callbacks(创建/保存/更新/删除/查找之前/之后) 预加载(急加载) 事务 复合主键 SQL Builder 自动迁移 日志 可扩展,编写基于GORM回调的插件 每个功能都 2024-11-15 Go #Go
02-数据库 1. 数据库1.1. 连接数据库要连接到数据库首先要导入驱动程序。例如 1import _ "github.com/go-sql-driver/mysql" 为了方便记住导入路径,GORM包装了一些驱动。 1234import _ "github.com/jinzhu/gorm/dialects/mysql"// import _ "github.com/jinzhu/gorm/dialects/ 2024-11-15 Go #Go
03-模型 1. 模型1.1. 模型定义123456789101112131415161718192021222324252627282930313233343536373839404142434445type User struct { gorm.Model Birthday time.Time Age int Name strin 2024-11-15 Go #Go
04-CRUD读写数据 1 CRUD:读写数据1.1. 创建1.1.1. 创建记录1234567user := User{Name: "Jinzhu", Age: 18, Birthday: time.Now()}db.NewRecord(user) // => 主键为空返回`true`db.Create(&user)db.NewRecord(user) // => 创建`user 2024-11-15 Go #Go
05-Callbacks 1. Callbacks您可以将回调方法定义为模型结构的指针,在创建,更新,查询,删除时将被调用,如果任何回调返回错误,gorm将停止未来操作并回滚所有更改。 1.1. 创建对象创建过程中可用的回调 1234567891011// begin transaction 开始事务BeforeSaveBeforeCreate// save before associations 保存前关联// upda 2024-11-15 Go #Go
06-高级用法 1. 高级用法1.1. 错误处理执行任何操作后,如果发生任何错误,GORM将其设置为*DB的Error字段 12345678910111213if err := db.Where("name = ?", "jinzhu").First(&user).Error; err != nil { // 错误处理...}// 如果有多个错误发生,用`GetErrors`获取 2024-11-15 Go #Go
07-开发 1. 开发1.1. 架构Gorm使用可链接的API,*gorm.DB是链的桥梁,对于每个链API,它将创建一个新的关系。 1234567891011121314db, err := gorm.Open("postgres", "user=gorm dbname=gorm sslmode=disable")// 创建新关系db = db.Where("name = ?", "jinzhu")// 过 2024-11-15 Go #Go
08-更新日志 1. 更新日志1.1. v1.01.1.1. 破坏性变更 gorm.Open返回类型为*gorm.DB而不是gorm.DB 更新只会更新更改的字段 大多数应用程序不会受到影响,只有当您更改回调中的更新值(如BeforeSave,BeforeUpdate)时,应该使用scope.SetColumn,例如: 123456func (user *User) BeforeUpdate(scope *go 2024-11-15 Go #Go
01-viper 1.介绍Viper是适用于Go应用程序(包括Twelve-Factor App)的完整配置解决方案。它被设计用于在应用程序中工作,并且可以处理所有类型的配置需求和格式。目前Star 15.8k,它支持以下特性: 设置默认值 从JSON、TOML、YAML、HCL、envfile和Java properties格式的配置文件读取配置信息 实时监控和重新读取配置文件(可选) 从环境变量中读取 从远程 2024-11-14 Go #Go
01-快速入门 1.什么是Gin Gin 是一个用Go (Golang)编写的 开源web 框架。 目前在GitHub Start 47.4K, 它是一个类似于 martini 但拥有更好性能的 API 框架,路由解析由于使用的是httprouter,速度提高了近 40 倍。 Github: https://github.com/gin-gonic/gin 中文文档: https://gin-gonic.com 2024-11-14 Go #Go
02-zap 1.项目介绍Gin框架学习使用,并实践常用包在Gin框架中的集成和使用。源码地址: https://github.com/52lu/gin-import-template.git 1.1 项目结构123456789101112├── api # 接口├── config # 配置├── core # 核心代码├── global # 全局变量和常量├── initialize # 初始化相关├── 2024-11-14 Go #Go
02-启动流程分析 1.启动服务1.1 服务源码123456789101112131415package main// 引入gin框架import "github.com/gin-gonic/gin"func main() { // 创建一个默认的路由引擎 engine := gin.Default() // 注册Get路由 engine.GET("/", func(ctx *gin.Context) 2024-11-14 Go #Go
03-gorm 1. 介绍gorm是一个使用Go语言编写的ORM框架。 它文档齐全,对开发者友好,支持主流数据库。具体使用可参考之前的文章Go常用包(十九):全功能ORM框架(gorm) 1.1 集成流程 1.2 涉及目录 2. 配置2.1 编辑主配置./config.yaml1234567891011121314151617181920212223mysql: host: 127.0.0.1 port: 3 2024-11-14 Go #Go
03-路由初使用 1.介绍Gin框架的路由功能是基于httprouter(https://github.com/julienschmidt/httprouter)设计的,httprouter是一由golang实现的路由组件。httprouter使用基数树(也叫基数特里树或压缩前缀树)这种数据结构来维护映射路由关系,通过前缀树快速路由。同时其里面的HttpRouter结构体实现了golang的net.http.ser 2024-11-14 Go #Go
04-jwt 1. 介绍JWT全称JSON Web Token是一种跨域认证解决方案,属于一个开放的标准,它规定了一种Token实现方式,目前多用于前后端分离项目和OAuth2.0业务场景下。 jwt-go 是使用Go语言实现的Json web token (JWT),目前GitHub Start 9.8k,源码地址: https://github.com/dgrijalva/jwt-go,从版本3.2.1开 2024-11-14 Go #Go