- 目录 文章目录 目录前言AutoMigrate示例 Migrator 接口(DDL 操作方法)表操作列操作约束操作索引操作 数据库版本控制参考文档 前言 本文示例为 GORM V2.0 版本。 AutoMigrate GORM 的 AutoMigrate() 方法用于自动迁移 ORM 的 Schemas。所谓 “迁移” 就是刷新数据库中的表... 目录 文章目录 目录前言AutoMigrate示例 Migrator 接口(DDL 操作方法)表操作列操作约束操作索引操作 数据库版本控制参考文档 前言 本文示例为 GORM V2.0 版本。 AutoMigrate GORM 的 AutoMigrate() 方法用于自动迁移 ORM 的 Schemas。所谓 “迁移” 就是刷新数据库中的表...
- 目录 文章目录 目录Channel通道缓冲区遍历通道与关闭通道 Channel channel(通道)是用来传递数据的一个数据结构。 通道可用于两个 goroutine 之间通过传递一个指定类型的数值,以此来同步运行及通讯。操作符 <- 用于指定通道的方向,根据位置的不同表示发送或接收。如果未指定方向,则为双向通道。 ch <- v... 目录 文章目录 目录Channel通道缓冲区遍历通道与关闭通道 Channel channel(通道)是用来传递数据的一个数据结构。 通道可用于两个 goroutine 之间通过传递一个指定类型的数值,以此来同步运行及通讯。操作符 <- 用于指定通道的方向,根据位置的不同表示发送或接收。如果未指定方向,则为双向通道。 ch <- v...
- 目录 文章目录 目录Goroutine 的控制方式WaitGroupChannel + Select 通知Context ContextContext 的接口Context 的继承衍生使用 WithCancel 取消 Context使用 WithDeadline 取消 Context使用 WithTimeout 取消 Context使用 WithValue... 目录 文章目录 目录Goroutine 的控制方式WaitGroupChannel + Select 通知Context ContextContext 的接口Context 的继承衍生使用 WithCancel 取消 Context使用 WithDeadline 取消 Context使用 WithTimeout 取消 Context使用 WithValue...
- 目录 文章目录 目录条件判断if/else 语句switch 语句fallthrough 语句type-switch 语句 select(开关)语句 循环for 循环语句For-each range 循环语句 循环控制语句break 语句continue 语句goto 语句 条件判断 if/else 语句 示例: package... 目录 文章目录 目录条件判断if/else 语句switch 语句fallthrough 语句type-switch 语句 select(开关)语句 循环for 循环语句For-each range 循环语句 循环控制语句break 语句continue 语句goto 语句 条件判断 if/else 语句 示例: package...
- 目录 文章目录 目录encoding/json使用 json.Marshal() 函数对一组数据进行 JSON 格式的编码使用 json.Unmarshal() 函数对 JSON 数据进行解码 encoding/json Golang 提供了的标准库 encoding/json 对 JSON 数据进行编解码,并且允许使用 map[string]in... 目录 文章目录 目录encoding/json使用 json.Marshal() 函数对一组数据进行 JSON 格式的编码使用 json.Unmarshal() 函数对 JSON 数据进行解码 encoding/json Golang 提供了的标准库 encoding/json 对 JSON 数据进行编解码,并且允许使用 map[string]in...
- 目录 文章目录 目录切片len() 和 cap() 函数append() 和 copy() 函数空切片 切片 Golang 中,切片(Slice)的本质是长度不固定的、可以追加元素的特殊数组,所以切片也称为 “动态数组”。 注意,声明时切片不需要说明长度,否则会触发异常:cannot use numbers (type [9]int) as type... 目录 文章目录 目录切片len() 和 cap() 函数append() 和 copy() 函数空切片 切片 Golang 中,切片(Slice)的本质是长度不固定的、可以追加元素的特殊数组,所以切片也称为 “动态数组”。 注意,声明时切片不需要说明长度,否则会触发异常:cannot use numbers (type [9]int) as type...
- 目录 文章目录 目录前言gormigrate核心结构体实现分析版本定义InitSchemaMigration 版本记录(历史)版本升级和回退 前言 GORM v2gormigrate v2程序 Demo:https://github.com/JmilkFan/gormigrate-demo gormigrate GORM 本身提供了 AutoM... 目录 文章目录 目录前言gormigrate核心结构体实现分析版本定义InitSchemaMigration 版本记录(历史)版本升级和回退 前言 GORM v2gormigrate v2程序 Demo:https://github.com/JmilkFan/gormigrate-demo gormigrate GORM 本身提供了 AutoM...
- 目录 文章目录 目录delvedlv debugdlv execdlv attachdlv test调试指令 delve Golang 支持使用 GDB 来进行调试,这与 C 语言几乎是一致的。但 GDB 是一个通用性调试工具,不非常能直接地反映出 Golang 的特点,例如:goroutine 语句的调试。所以,推荐使用 delve(https:... 目录 文章目录 目录delvedlv debugdlv execdlv attachdlv test调试指令 delve Golang 支持使用 GDB 来进行调试,这与 C 语言几乎是一致的。但 GDB 是一个通用性调试工具,不非常能直接地反映出 Golang 的特点,例如:goroutine 语句的调试。所以,推荐使用 delve(https:...
- 目录 文章目录 目录ProfilingruntimeMemStatGCpproftrace Profiling Golang 提供了友好的工程化支持,其中之一就是 Profiling(分析)工具。例如:Golang 自带的 runtime 包,就可以轻松获取程序运行期间的各种内存或 CPU 的使用状态信息。 runtime MemStat... 目录 文章目录 目录ProfilingruntimeMemStatGCpproftrace Profiling Golang 提供了友好的工程化支持,其中之一就是 Profiling(分析)工具。例如:Golang 自带的 runtime 包,就可以轻松获取程序运行期间的各种内存或 CPU 的使用状态信息。 runtime MemStat...
- 目录 文章目录 目录指针空指针双重指针向函数传递指针参数 指针 一个指针变量指向了一个值的内存地址。类似于变量和常量,在使用指针前需要声明、定义一个指针变量。 声明一个指针变量,格式: var var_name *type 1 示例: var ip *int /* 声明整型指针变量 */ var fp *float32 /* 声明浮点型指针变量... 目录 文章目录 目录指针空指针双重指针向函数传递指针参数 指针 一个指针变量指向了一个值的内存地址。类似于变量和常量,在使用指针前需要声明、定义一个指针变量。 声明一个指针变量,格式: var var_name *type 1 示例: var ip *int /* 声明整型指针变量 */ var fp *float32 /* 声明浮点型指针变量...
- 目录 文章目录 目录作用域局部变量全局变量 变量的生命周期 作用域 作用域是已声明标识符所表示的常量、类型、变量、函数、或包在源代码中的作用范围(有效性范围)。 注意,声明了的局部变量必须被引用,否则会触发异常。全局变量则不需要,因为编译器会考虑该全局变量是否会在其他地方被引用。 局部变量 在函数体内声明的变量称之为局部变量,它们的作用域只在... 目录 文章目录 目录作用域局部变量全局变量 变量的生命周期 作用域 作用域是已声明标识符所表示的常量、类型、变量、函数、或包在源代码中的作用范围(有效性范围)。 注意,声明了的局部变量必须被引用,否则会触发异常。全局变量则不需要,因为编译器会考虑该全局变量是否会在其他地方被引用。 局部变量 在函数体内声明的变量称之为局部变量,它们的作用域只在...
- 目录 文章目录 目录defer,panic 和 recoverpanicrecover通过 panic + recover 来简化错误处理 defer,panic 和 recover Golang 中常规的错误处理方式是直接 return error 给调用者,再由调用者决定后续的程序逻辑,或捕获、或终止、或恢复。但对于一些无法恢复的错误,返回 err... 目录 文章目录 目录defer,panic 和 recoverpanicrecover通过 panic + recover 来简化错误处理 defer,panic 和 recover Golang 中常规的错误处理方式是直接 return error 给调用者,再由调用者决定后续的程序逻辑,或捕获、或终止、或恢复。但对于一些无法恢复的错误,返回 err...
- 目录 文章目录 目录Golang 的错误处理哲学为什么 Golang 不使用异常进行错误处理?错误处理错误处理策略建议 Golang 的错误处理哲学 首先需要注意的是,错误与异常有着本质的区别。 错误(Error):作为流程的一部分,被调用方显式返回,调用方主动处理。异常(Exception):预料之外出现或者在流程中不应该出现的错误。 Golan... 目录 文章目录 目录Golang 的错误处理哲学为什么 Golang 不使用异常进行错误处理?错误处理错误处理策略建议 Golang 的错误处理哲学 首先需要注意的是,错误与异常有着本质的区别。 错误(Error):作为流程的一部分,被调用方显式返回,调用方主动处理。异常(Exception):预料之外出现或者在流程中不应该出现的错误。 Golan...
- 目录 文章目录 目录结构体访问结构体成员向函数传递结构体结构体指针结构体标签(Struct Tag) 结构体 Golang 中,结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。与 C 语言中的结构体类似,区别在于 Golang 结构体的操作更加精简,方式更加单一。同时,Golang 中结构体变量也类似于 OOP 中对象的概念,可以具有对象的... 目录 文章目录 目录结构体访问结构体成员向函数传递结构体结构体指针结构体标签(Struct Tag) 结构体 Golang 中,结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。与 C 语言中的结构体类似,区别在于 Golang 结构体的操作更加精简,方式更加单一。同时,Golang 中结构体变量也类似于 OOP 中对象的概念,可以具有对象的...
- 目录 文章目录 目录前言实体完整性(主键约束)用户定义完整性(非空约束、唯一约束、检查约束和默认值)参照完整性(外键约束)关联关系一对一、一对多关联多对多关联示例 前言 本文基于 PostgreSQL 和 GORM 1.9 版本。GORM v2 对下文中的不足进行了优化。 全新的 Migrator:允许为关系创建数据库外键,更智能的 Aut... 目录 文章目录 目录前言实体完整性(主键约束)用户定义完整性(非空约束、唯一约束、检查约束和默认值)参照完整性(外键约束)关联关系一对一、一对多关联多对多关联示例 前言 本文基于 PostgreSQL 和 GORM 1.9 版本。GORM v2 对下文中的不足进行了优化。 全新的 Migrator:允许为关系创建数据库外键,更智能的 Aut...
上滑加载中
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢
2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
去报名 -
苏州工业园区“华为云杯”2025人工智能应用创新大赛赛中直播
2025/08/21 周四 16:00-17:00
Vz 华为云AIoT技术布道师
本期直播将与您一起探讨如何基于华为云IoT平台全场景云服务,结合AI、鸿蒙、大数据等技术,打造有创新性,有竞争力的方案和产品。
即将直播
热门标签