「笔记004」Go课程工程实践作业
1. 项目简介 该项目是一个基于 Golang 的社区论坛,允许用户创建话题 (Topic),并对话题进行评论 (Post)。项目要求包含话题的增删改查功能,并提供话题下的评论管理功能。用户需要注册和登录以使用所有功能,并且每个评论需要归属到对应的话题下。 2. 技术栈 后端:Golang 数据库:MySQL 开发框架:Gin(或其它 Golang 框架) ORM:GORM 依赖管理:Go Modules 3. 数据库设计 根据需求,有以下三张表:user、topic 和 post。 ...
「笔记003」Go高质量编程
摘要: 这段文字描述了一个Go语言编程的代码规范指南,以确保代码正确可靠、简洁清晰、涵盖边界条件并具备良好的异常处理能力。详细规定了代码格式化(使用gofmt和goimports)、注释规范(功能、细节、原因解释)、命名规范(变量、函数、包的命名方式),以及流程控制与错误处理的方法。鼓励减少代码嵌套,使用清晰的逻辑结构,适当应用defer机制。在错误处理方面,强调错误的简单化处理、错误链的构建与判断,避免使用panic,重视错误的恢复和程序的健壮性。该规范贯彻了减少冗余和复杂性的核心原则,旨在使代码更易于阅读和维护。
核心要求 正确可靠:代码功能实现准确、逻辑严密。 简介清晰:代码结构与实现尽可能简洁,逻辑直观。 边界条件完备:考虑所有可能的输入及场景,保证功能覆盖边界情况。 异常处理:通过有效的异常处理机制,提升代码稳定性。 可读性与可维护性:代码应清晰易懂,便于他人理解和修改。 代码规范细则 1. 代码格式化 gofmt: 统一代码风格,符合Go官方规范。 goimports: 在gofmt基础上自动管理依赖包。 2. 注释规范 注释功能: ...
「笔记001」Go语法基础2
摘要: 本文介绍了 Go 语言的一些核心概念和使用注意事项。 1. 结构体与方法:说明了结构体的定义与方法的使用,分为值接收器和指针接收器,强调方法名必须唯一,并注意指针初始化。 2. 字符串与 Range:介绍 Go 语言中的字符串操作和遍历技巧,强调 Unicode 处理和字符串的不可变性。 3. 时间处理:讲解了 Go 中时间获取、格式化和时间差的计算,注意时区处理。 4. JSON 处理:介绍了序列化与反序列化,强调 JSON 字段与结构体字段匹配的重要性。 5. 协程与通道:涵盖 Goroutine 和 Channel 的使用,强调避免协程泄漏和阻塞。 6. 文件与 IO 操作:描述文件的读写操作及缓冲 IO 的使用,注意资源的正确管理。
一、结构体与方法 1. 结构体的基本定义与使用 结构体(struct)是 Go 描述复杂数据的核心工具,用于组织不同类型的字段。 示例代码: type User struct { Name string Age int IsActive bool } func main() { user := User{Name: "Alice", Age: 25, IsActive: true} fmt.Println(user.Name) // Alice } 2. 方法的定义与指针接收器 Go...
「笔记001」Go语法基础1
摘要: 本文介绍了 Go 语言的基础语法,涵盖变量与常量、控制流、数组与切片、Map、函数与指针、错误处理等方面。变量声明有显式、自动推断、简短声明等方式,常量用const声明。控制流以for循环为主,if-else与switch提供多样化条件处理。数组固定大小、切片动态灵活,Map支持动态键值存储。Go函数支持多返回值,指针简化内存操作,需注意内存安全。错误处理显式,结合多返回值避免错误忽略。强调变量作用域、数据共享和并发安全性。
一、简介 Golang(简称 Go)是由 Google 开发的一种静态强类型、编译型编程语言,因其简洁的语法设计、高效的运行时性能以及强大的并发支持,成为现代编程语言中的佼佼者。Go 语言注重简洁性和开发效率,主要特点包括:快速编译、高效并发模型、垃圾回收以及丰富的标准库支持,尤其适合后端服务开发、高并发程序以及微服务架构。 本文将简略介绍作者学到的 Go 语言的基础语法。 二、变量与常量 1. 变量声明 Go 的变量声明非常灵活,支持以下几种方式: 显式声明:使用 var 关键字指定类型。 自动推断类型:通过赋值自动推断。 -...