go语言``反引号用法归纳——多行输出和Tag标签(指定json名称、MySQL名称))

2024-01-02 20:15:06

一、多行输出

示例


func main() {
	str1 := `反引号
        多行
        字符串`

	str2 := "双引号" +
		"        多行" +
		"     字符串"
	//str3 := '单引号" +
	//"        多行" +
	//"     字符串'
	str4 := "双引号\n" +
		"        多行\n" +
		"     字符串\n"
	fmt.Println("str1", str1)
	fmt.Println("str2", str2)
	fmt.Println("str4", str4)
	//fmt.Println(str3)
}

单引号会直接报错。

在这里插入图片描述

输出结果

反引号时候正确输出了预期结果。
双引号如果仅通过+连接,不会有什么变化,输出的依旧是单行。
双引号内部可以通过\n控制换行。

在这里插入图片描述

二、Tag标签

总述

常用的有以下几种:json,xml,gorm,validator,protobuf,bson,mapstructure

encoding/json: 这是 Go 语言的标准库,它使用标签来控制如何将结构体编码为 JSON 或从 JSON 解码到结构体。

encoding/xml: 同样是 Go 语言的标准库,它使用标签来控制如何将结构体编码为 XML 或从 XML 解码到结构体。

gorm: 这是一个流行的 Go 语言 ORM 库,它使用标签来定义数据库表和结构体之间的映射关系。

validator: 这是一个用于数据验证的库,它使用标签来定义验证规则。

protobuf: 这是 Google 的 Protocol Buffers 的 Go 语言实现,它使用标签来定义 Protobuf 消息和结构体之间的映射关系。

bson: 这是 MongoDB 官方的 Go 驱动使用的,它使用标签来控制如何将结构体编码为 BSON 或从 BSON 解码到结构体。

mapstructure: 这是一个用于将通用的 map 转换为结构体的库,它使用标签来定义 map 的键和结构体字段之间的映射关系。

本段引用自 https://learnku.com/articles/78000#5ed13e

validator

参考此文:

https://liuqh.icu/2021/05/30/go/gin/11-validate/

Gorm

参考官方文档:

https://gorm.io/zh_CN/docs/models.html

Json

常用的有:字段命名、omitempty 选项、“-”选项。

字段命名: 标签可以指定该字段在 json 中的键名。例如,虽然结构体中的字段名是 Name(首字母大写),但在 json 中,对应的键名却是 name(全部小写)。

omitempty 选项: 这个选项可以控制如果字段的值为空(零值),那么在编码为 json 时,这个字段是否会被忽略。例如,Age 字段的标签是 json:“age,omitempty”,这表示如果 Age 的值是 0(int 类型的零值),那么在编码为 json 时,“age” 键将不会出现。

“-“选项: 如果你不想让某个字段在 json 中出现,你可以使用 - 选项。例如,如果你将 Email 字段的标签改为 json:“-”,那么无论 Email 的值是什么,在编码为 json 时,“email” 键都不会出现。

参考此文:

https://fivezh.github.io/2022/02/01/golang-json-tag/

文章来源:https://blog.csdn.net/Ws_Te47/article/details/135346379
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。