您现在的位置是:首页 > 正文

Go语言学习笔记——结构体中使用tag标记

2023-11-09 22:25:30阅读 2674


golang结构体中使用tag标记

简介

我们可以在结构体的字段后面,添加一些对该字段的说明(元信息meta),程序通过反射解析这些信息并使用。

语法结构

`key:"value" key:"value"`

反引号括起来,key不加双引号,value加双引号,多个值中间用空格分开

快速入门

package main

import (
	"fmt"
	"reflect"
)

func main() {
   
	type S struct {
   
		F string `species:"gopher" color:"blue"`
	}

	//实例化结构体,在这里没有使用到,所以空实例化
	s := S{
   }

	//使用反射获得结构体的type类型
	st := reflect.TypeOf(s)

	//拿到第一个字段
	field := st.Field(0)

	//拿到tag里面的东西
	fmt.Println(field.Tag.Get("color"), field.Tag.Get("species"))
}

运行结果:

[Running] go run "e:\golang开发学习\go_pro\main.go"
blue gopher

[Done] exited with code=0 in 1.234 seconds

常见应用

应用json编码

package main

import (
	"encoding/json"
	"fmt"
	"log"
	"os"
	"time"
)

//一般我们字段名都是大写的,但是我们json里面都是小写的,这里就可以通过tag来使用小写来知道大写的字段
type User struct {
   
	Name      string    `json:"name"`
	Password  string    `json:"password"`
	CreatedAt time.Time `json:"createdAt"`
}

func main()

网站文章

  • vue小坑总结

    1.清理依赖包del node_modules2.清理文件del package-lock.json3.强制清理npm cache clear --force4.重新安装npm install5.sa...

    2023-11-09 22:25:19
  • 算术题(按所需数量)生成

    算术题(按所需数量)生成

    ##个人信息GIT地址https://github.com/ShangkangTang/AchaoCalculator/blob/master/ShankangTang/ConsoleApplication1/ConsoleApplication1/ConsoleApplication1.cppGIT用户名ShangkangTang学号后五位22208博客地址...

    2023-11-09 22:25:11
  • ValueError: Format specifier missing precision

    ValueError: Format specifier missing precision

    修改代码如下 h,w = eval(input()) # 请输入身高(m)和体重(kg),逗号隔开: print("BMI是{:.1f}".format(w/pow(h,2)))

    2023-11-09 22:24:56
  • 在下列集成电路说法中不正确_《大学计算机信息技术》课程分章复习题(第一部分)...

    江苏省《大学生信息技术教程》课程分章复习题(第一部分)第1章信息技术概论1.下面关于无线通信的叙述中,错误的是_______________.A,无线电波,微波,红外线,激光等都是无线通信信道B,卫星...

    2023-11-09 22:24:40
  • 金三银四面试必备:“SpringCloudAlibaba学习笔记” 阿里腾讯字节都稳了

    SpringCloud Alibaba 为什么会出现? Spring Cloud Netflix 项目进入维护模式,Spring Cloud Netflix 将不再开发新的组件,我们知道Spring ...

    2023-11-09 22:24:05
  • Spring Cloud Alibaba Nacos 入门实践

    概览阿里巴巴在2018年7月份发布Nacos, Nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。并表示在6-8个月完成到生产可用的0.8版本,目前版本是0.9版本。Nacos提供四大功能 服务发现和服务健康检查 Nacos使服务更容易注册自己并通过DNS或HTTP接口发现其他服务。Nacos还提供服务的实时健康检查,以防止向不健康的主机或服务实例发送请...

    2023-11-09 22:23:54
  • p4427 [BJOI2018]求和

    分析我们发现k非常的小于是我们对于每一个点暴力维护它到根的所有节点的深度k次方之和即可每次找到lca然后用之前处理出来的数组加加减减即可代码#include<bits/stdc++.h>using namespace std;const int mod = 998244353;int pr[300100][20],dep[300100],n...

    2023-11-09 22:23:46
  • 如何把图片转成gif?一分钟学会在线一键生成gif

    如何把图片转成gif?一分钟学会在线一键生成gif

    平时我们在聊天的时候,经常会发送一下有趣的表情包,这些表情包是怎么做出来的呢?其实可以使用在线gif生成的方法,下面就来给大家演示一下。看完以上的内容,小伙伴们都应该学会了gif合成的方法了吧,使用这...

    2023-11-09 22:23:32
  • android GridView android:stretchMode=&quot;columnWidth&quot;

    stretchMode属性值的作用是设置GridView中的条目以什么缩放模式去填充空间。参数stretchMode 可选值:NO_STRETCH,STRETCH_SPACING,STRETCH_SPACING_UNIFORM,或STRETCH_COLUMN_WIDTH

    2023-11-09 22:23:22
  • 步步为营 .NET 设计模式学习笔记 一、开篇(设计模式之泡妞二十三招)

    园子里讲设计模式的太多了,最近我也在学设计模式,把我自己练的一些代码整理下,写个.NET设计模式学习笔记来让自己在设计模式的功底更深一层。记得金庸小说里风清扬教令狐冲的时候,说过独孤九剑的总纲,无招胜...

    2023-11-09 22:23:13