Golang 代码规范
代码规范 Go 代码规范(或 Go 规范)旨在使代码更具可读性、可维护性和可重用性。以下是一些主要的规则: 格式化:使用 gofmt 工具来格式化代码以提高可读性。 命名:遵循有意义的命名方式,使用驼峰式命名法,在变量名和函数名中使用小写字母开头,公共函数和变量名应该首字母大写。 注释:对于每一个包、函数、类型、方法和变量都应该添加注释,尽可能用单行注释。 导入:将所有...
代码规范 Go 代码规范(或 Go 规范)旨在使代码更具可读性、可维护性和可重用性。以下是一些主要的规则: 格式化:使用 gofmt 工具来格式化代码以提高可读性。 命名:遵循有意义的命名方式,使用驼峰式命名法,在变量名和函数名中使用小写字母开头,公共函数和变量名应该首字母大写。 注释:对于每一个包、函数、类型、方法和变量都应该添加注释,尽可能用单行注释。 导入:将所有...
testing Golang 自带了一个轻量级的测试框架,可以用来编写单元测试和基准测试。该测试框架主要包含了以下几个组件: testing.T 结构体:代表了一个单元测试,它包含了一系列断言函数,用于判断测试结果是否正确; testing.B 结构体:代表了一个基准测试,它用于测试代码的性能; testing.M 结构体:代表了一个测试 suite,可以用于对一组...
时间包 时间包 time 提供了日期和时间相关的函数和结构体。使用这个包可以完成时间格式化、时间比较、定时器等功能 获取当前时间 now := time.Now() fmt.Println(now) 时间格式化输出 t := time.Now() fmt.Println(t.Format("2006-01-02 15:04:05")) 时间比较 t1 := time...
反射 介绍 反射是 Golang 中的一项重要特性,它提供了一种机制,可以在运行时动态地获取变量的类型信息、值信息、方法、字段等,并可以通过反射进行值的修改和调用方法。这使得 Golang 具备了更高的灵活性和通用性。 在 Golang 中,反射通过 reflect 包实现,该包提供了一些函数和类型,可以用于检查变量的类型、值、方法、字段等信息。例如,reflect.TypeO...
概念 并发:把任务在不同的时间点交给处理器进行处理同一时间点,任务并不会同时进行 并行:把每一个任务分配给每一个处理器独立完成,在同一时间点任务一定是同时运行的 简介使用 创建:使用 go 关键字创建一个 goroutine go functionName() 调整并发运行性能 例子: runt...
interface And Panic、Error 源码 interface 接口创建使用 package main import ( "github.com/Cc360428/HelpPackage/UtilsHelp/logs" "github.com/pkg/errors" ) // UserInterface type UserInterface interf...
集合(map) 和容器(Container) 源码 Map Map 是一种无序键值对的集合,通过 Key来检索数据,key 类似索引,指向数据值,可以使用 for迭代,但是 map是无序的,无法决定他的返回值顺序,这是因为 map 是使用 hash 来实现的 删除元素、判断是否存在 package main import ( "github.com/Cc360428/H...
切片(slice) 和 range 使用 源码 切片(slice) Go 数组在一定情况下,不能满足开发业务需求(数组固定长度、有很多局限性),切片是可变长度序列,切片底层就是数组做了一层封装(也叫做动态数组)。切片可以自动扩容,切片是引用类型,包含地址、长度(len)、容量(cap) 切片什么时候扩容 如果切片的容量小于 1024 个元素,那么扩容的时候 slice...
指针和结构体 源码 指针 Go 语言指针与 C 语言指针不一样理解,一个指针变量指向了一个值的内存地址。 类似于变量和常量,在使用指针前你需要声明指针 示例 示例一: func new(Type) *Type 说明 new()方法 返回值就是指针 package main import ( "github...
作用域与数组 源码 变量作用域 局部变量 函数内定义的变量 package main import ( "fmt" ) func main() { var a, b, c = 1, 2, 3 fmt.Println(a, b, c) } 全局变量 函数外定义的变量 package main import "fmt" // 定义全局变量 var ...