《零基础Go语言算法实战》【题目 2-18】获取结构体中字段的 tag 值

embedded/2025/1/15 1:12:35/

《零基础Go语言算法实战》

【题目 2-18】获取结构体中字段的 tag 值

在 Go 语言中,使用 json 包时,在结构体中的字段前会加上 tag,有没有什么办法可以获

取到这个 tag 的内容呢?举例说明。

【解答】

tag 信息可以通过 reflect 包内的方法获取,下面通过一个例子来加深理解:

package main

import (

 "fmt"

 "reflect"

)

type Json struct {

 tag string `json:"Tag"`

}

func printTag(input interface{}) {

 t := reflect.TypeOf(input).Elem()

 for i := 0; i < t.NumField(); i++ {

 fmt.Printf(" 结构体字段 %v 对应的 json tag 是 %v\n", t.Field(i).Name,

 t.Field(i).Tag.Get("json"))

 }

}

func main() {

 j := Json{

 tag: "test",

 }

 printTag(&j)

}

//$ go run interview1-42.go 

// 结构体字段 tag 对应的 json tag 是 Tag

68cef3b2c7c14f7a9888b84d042ed56c.png

 


http://www.ppmy.cn/embedded/153983.html

相关文章

MySQL 与 Redis 的数据一致性问题

读数据的逻辑基本一致问题1: 一致性有哪些?MySQL 与 Redis 的数据一致性方案有哪些?先写MySQL还是先写Redis?缓存数据是更新还是清除?强一致还是最终一致?问题: 如果mysql写成功了,但是Redis写(删除)失败了怎么办?重试机制的幂等问题如何解决? 方案1: 先更新 MySQL 再清…

2025年01月11日Github流行趋势

项目名称&#xff1a;xiaozhi-esp32 项目地址url&#xff1a;https://github.com/78/xiaozhi-esp32项目语言&#xff1a;C历史star数&#xff1a;2433今日star数&#xff1a;321项目维护者&#xff1a;78, MakerM0, whble, nooodles2023, Kevincoooool项目简介&#xff1a;构建…

Leetcode - 147双周赛

目录 一、3407. 子字符串匹配模式二、3408. 设计任务管理器三、3409. 最长相邻绝对差递减子序列四、3410. 删除所有值为某个元素后的最大子数组和 一、3407. 子字符串匹配模式 题目链接 字符串匹配问题&#xff0c;把字符串 p 分成两段 、&#xff0c;i 是 ’ * ’ 的下标&am…

React 进阶之路:深入详解事件绑定的多样方式与区别,促使更加容易理解

React 中的事件绑定是处理用户交互的一个重要方面。React 的事件系统与传统的 DOM 事件系统有所不同&#xff0c;它在设计时考虑了性能、可维护性和易用性&#xff0c;因此 React 提供了多种方式来绑定事件处理程序。理解这些绑定方式及其区别&#xff0c;有助于在实际项目中做…

open3d+opencv实现矩形框裁剪点云操作(C++)

&#x1f451;主页&#xff1a;吾名招财 &#x1f453;简介&#xff1a;工科学硕&#xff0c;研究方向机器视觉&#xff0c;爱好较广泛… ​&#x1f4ab;签名&#xff1a;面朝大海&#xff0c;春暖花开&#xff01; open3dopencv实现矩形框裁剪点云操作&#xff08;C&#xff…

第三章、python中的对象、变量及地址的概念(3.1-3.4)------对象、变量、内存地址及可迭代对象

目录 3.1内存地址(或逻辑地址)、id()、is、in 3.2创建对象及对象的划分问题 3.3变量 3.3.1变量被赋值(=) 3.3.2变量无需声明数据类型 3.3.3变量的作用域(scope)及种类 3.4可迭代对象(Iterable) 第三章、python中的对象、变量及地址的概念 本章讲述编程中对象、变量、地址的基本…

JavaScript Chrome 中的运行

我们在 Chrome 浏览器中可以通过按下 F12 按钮或者右击页面&#xff0c;选择"检查"来开启开发者工具。 也可以在右上角菜单栏选择 "更多工具"》"开发者工具" 来开启&#xff1a; 1、Console 窗口调试 JavaScript 代码 清空 Console 窗口到内容可…

【HM-React】08. Layout模块

基本结构和样式reset 结构创建 实现步骤 打开 antd/Layout 布局组件文档&#xff0c;找到示例&#xff1a;顶部-侧边布局-通栏拷贝示例代码到我们的 Layout 页面中分析并调整页面布局 代码实现 pages/Layout/index.js import { Layout, Menu, Popconfirm } from antd impor…