指尖上的记忆指尖上的记忆
首页
  • 基础
  • Laravel框架
  • Symfony框架
  • 基础
  • Gin框架
  • 基础
  • Spring框架
  • 命令
  • Nginx
  • Ai
  • Deploy
  • Docker
  • K8s
  • Micro
  • RabbitMQ
  • Mysql
  • PostgreSsql
  • Redis
  • MongoDb
  • Html
  • Js
  • 前端
  • 后端
  • Git
  • 知识扫盲
  • Golang
🌟 gitHub
首页
  • 基础
  • Laravel框架
  • Symfony框架
  • 基础
  • Gin框架
  • 基础
  • Spring框架
  • 命令
  • Nginx
  • Ai
  • Deploy
  • Docker
  • K8s
  • Micro
  • RabbitMQ
  • Mysql
  • PostgreSsql
  • Redis
  • MongoDb
  • Html
  • Js
  • 前端
  • 后端
  • Git
  • 知识扫盲
  • Golang
🌟 gitHub

golang之再看omitempty关键字:

在Go语言中,omitempty是结构体标签中的一个选项,用于在将结构体转换为JSON或其他格式时,忽略具有零值的字段,从而减少生成的数据量。omitempty可以应用于各种类型的字段,但需要注意它只能在字段的值为其类型的零值时才会生效。以下是一些常见的类型和它们的零值,可以被omitempty忽略:

数值类型(int、float等):0、0.0
布尔类型:false
字符串类型:空字符串 ""
切片:nil 或者长度为0的切片
映射(map):nil 或者长度为0的映射
指针:nil
接口:nil
通道(channel):nil
函数:nil
结构体:所有字段都为零值的结构体

通过上面的说明可以知道,在Go语言中,只有某些特定的类型可以被赋值为nil,这通常包括:

指针(Pointers)
接口(Interfaces)
切片(Slices)
映射(Maps)
通道(Channels)
函数(Functions)
这些类型的变量可以被赋值为nil,表示它们没有指向实际数据或对象。其他类型(如基本数据类型,如int、float,以及字符串、布尔等)不能被赋值为nil,因为它们是值类型,而不是引用类型。