函数
函数 定义函数 func 函数名字 (参数列表) (返回值列表){ // 函数体 return 返回值列表 } 注意: 函数名首字母小写为私有,大写为公有; 参数列表可以有0-多个,多参数使用逗号分隔,不支持默认参数; 返回值列表返回值类型可以不用写变量名 如果只有一个返回值且不声明类型,可以省略返回值列表与括号 如果有返回值,函数内必须有return ...
函数 定义函数 func 函数名字 (参数列表) (返回值列表){ // 函数体 return 返回值列表 } 注意: 函数名首字母小写为私有,大写为公有; 参数列表可以有0-多个,多参数使用逗号分隔,不支持默认参数; 返回值列表返回值类型可以不用写变量名 如果只有一个返回值且不声明类型,可以省略返回值列表与括号 如果有返回值,函数内必须有return ...
接口 接口 = 定义方法集 type FImpl interface { f1() f2() f3() f4() } 实现 结构体实现遵循规则: 结构体T方法为值接收者方法: T 和 *T 都可以赋给接口 结构体T方法为接收者方法: 只有 *T 可以赋给接口 接口类型前面永远不要加 * (接口用值,不加星;加星就废,没...
errors.Is() 使用场景总结 ✅ 可以使用的情况 1. 直接返回预定义错误实例 // 定义 var ErrNotFound = errors.New("not found") // 返回 func GetUser(id string) error { return ErrNotFound // ✅ 直接返回同一个实例 } // 判断 if errors.Is(err, ...
📌 结论 值接收者方法: T 和 *T 都可以赋给接口 指针接收者方法:只有 *T 可以赋给接口 接口类型前面永远不要加 * (接口用值,不加星;加星就废,没方法) 示例1: type F interface { f() } type S1 struct{} func (s S1) f() {} // 值接收者方法,属于 S1 的值...
镜像拉取策略 值 含义 Always 每次启动容器时都尝试拉取镜像(忽略本地缓存)。 IfNotPresent 如果本地已有该镜像,重启 Pod 时则不拉取;否则拉取。 Never 只使用本地镜像,绝不...
作用 .gitlab-ci.yml └─> 调用模板中的构建脚本 可能调用 make 或 build.sh Makefile // 提供统一的构建命令入口 ├─> build.sh (make build) └─> ciscripts/build.sh (make package) pack.sh // 完成打包、镜像推送 ...
Protobuf Protobuf 提供了一种紧凑的二进制格式,序列化后的数据体积小,解析速度快,适合高性能场景。它支持多种编程语言,包括 C++、Java、Python、Go 等,能够实现跨语言的数据交换。 Protobuf 常用于以下场景: 分布式系统:在服务之间传递高效的结构化数据。 RPC 框架:与 gRPC 集成,用于定义服务接口和消息格式...
json 和 protojson使用 不是直接使用encoding/json库的原因: 序列化器 能否用于 Protobuf GO 结构体 输出标准 Protobuf JSON 能正确处理特殊 proto 类型 encoding/json 可以,但有限 否...
创建 Map创建了没有赋值,编译器会报错 //1.make函数创建 (推荐) var map2 = make(map[string]string) //make创建会直接初始化,值为nil //2.创建同时初始化 (有确定的键值时推荐) var map3 = map[string]int{"Go":100,"java":90} // 有这些键值时使用 //3.var常量定义 (不...
mapstructure 库 将 map[string]interface{} 数据解析到结构体中 基础使用(推荐做法:始终使用标签) 相关的包: import { "github.com/mitchellh/mapstructure" } 语法 mapstructure.Decode(待解析map数据, &目标) // 等价 bytes, err := j...