首页 > 其他分享 >Golang - Structs 包的使用

Golang - Structs 包的使用

时间:2023-06-20 11:00:54浏览次数:39  
标签:struct -- fmt u1 structs Golang 使用 Println Structs


package main

//
// 主要用于 struct 转 map
// 还可以判断结构体是否有空属性等功能
//

import (
	"fmt"
	"github.com/fatih/structs"
)

// struct --> map

type Stu struct {
	Name string
	Age  int
}

func main() {
	// 创建一个 Age 属性为空的 struct 实例
	u1 := Stu{
		Name: "Tim",
	}

	var u2 Stu

	// 判断是否为结构体
	isStruct := structs.IsStruct(u1)
	fmt.Println(isStruct)

	// 判断 struct 是否为空 --> false
	isZero := structs.IsZero(u2)
	fmt.Println(isZero)

	// 是否有空属性 --> true
	hasZero := structs.HasZero(u1)
	fmt.Println(hasZero)

	// 获取 structName  --> Stu
	structName := structs.Name(u1)
	fmt.Println(structName)

	// 获取 struct 所有属性名 --> [Name Age]
	names := structs.Names(u1)
	fmt.Println(names)

	// 获得 属性对应的值 --> [Tim 0]
	values := structs.Values(u1)
	fmt.Println(values)

	// 转成 map
	m := structs.Map(u1)
	for _, v := range m {
		fmt.Printf("%T , %[1]v\n", v)
	}
}


标签:struct,--,fmt,u1,structs,Golang,使用,Println,Structs
From: https://blog.51cto.com/u_16165803/6521296

相关文章

  • 使用信捷PLC和台达变频器之间的通信程序,通过信捷XC3的Modbus通信控制台达VFD-M变频器
    使用信捷PLC和台达变频器之间的通信程序,通过信捷XC3的Modbus通信控制台达VFD-M变频器的正转、反转、加减速和停止。同时,可以使用威纶触摸屏监控变频器的运转频率、电压、电流以及详细的资料,包括参数设置和PLC程序的接线。您无需添加通信扩展模块,因为信捷PLC自带该功能,简单、方便且......
  • Python开发系列课程(7) - 函数和模块的使用
    函数和模块的使用在讲解本章节的内容之前,我们先来研究一道数学题,请说出下面的方程有多少组正整数解。x1+x2+x3+x4=8x1+x2......
  • 规则引擎调研及初步使用
    一、产生的背景生产过程中,线上的业务规则内嵌在系统的各处代码中,每次策略的调整都需要更新线上系统,进行从需求->设计->编码->测试->上线这种长周期的流程,满足不了业务规则的快速变化以及低成本的更新试错迭代。因此需要有一种解决方案将商业决策逻辑和应用开发者的技术决策分离......
  • C++使用ranges库解析INI文件
    C++使用ranges库解析INI文件引言C++20引入了<ranges>头文件,C++23对其进行了完善,本文将使用该头文件提供的adaptor编写一个简单的ini解析器。ini文件格式介绍一般的ini文件由section和entry部分,比如[section]key=value;Thisisentry.section和entry均独占一行,其中sectio......
  • 宝塔面板中使用Mysql命令快速导入大容量数据库
    在宝塔面板中,文件栏目中打开/www/backup/database文件夹,把我们的数据库上传到此文件夹中。(一般导入的数据库都会上传到这个文件夹,方便以后管理)点击旁边的终端,打开宝塔终端界面。输入账号及密码进入终端管理。(如果忘记密码,在软件商店里面找到Linux工具箱1.4里面可以设置......
  • pytorch 使用多GPU训练模型测试出现:TypeError: forward() missing 1 required positio
    转载:https://blog.csdn.net/lingyunxianhe/article/details/119454778?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168718901716800227455818%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=16871890171680022745......
  • 每日一个 ChatGPT 使用小技巧系列之2 - 用 ChatGPT 研读 SAP ABAP BAPI 的实现源代码
    本系列之前的文章:与其整天担心AI会取代程序员,不如先让AI帮助自己变得更强大每日一个ChatGPT使用小技巧系列之1-给出提纲或者素材,让ChatGPT帮你写作正好昨天有朋友向我发起知乎咨询,询问关于SAPABAPBAPIbapi_vendor_create的使用问题,本文就来说一说:bapi_......
  • 如何使用YOLOv8训练自己的模型和进行预测
    如何使用YOLOv8训练自己的模型和进行预测准备文件夹删除重复的照片。然后以图片采集的日期新建一个文件夹,如“2023.6.19”,并在其中新建一个名为VOCdevkit的文件夹,VOCdevkit里面创建一个名为JPEGImages的文件夹存放需要打标签的图片文件;再创建一个名为Annotations存放标注的标签......
  • Maven项目架构管理工具的安装、使用和Idea配置Tomcat
    ——在我们Javaweb开发过程中,需要手动导入大量的jar包,这个时候我们需要一个工具帮助我们自动导入和管理,由此Maven诞生了。目录一、Maven的下载二、配置Maven环境变量三、阿里云镜像四、本地仓库五、创建Maven项目:1.maven依赖导入资源问题;2.无法解析maven依......
  • vue中使用axios
    引入axios错误用法在main.js中引入,需要注意的是,因为axios是第三方库,不是vue的插件,所以下面的这种写法不支持。importaxiosfrom'axios';Vue.use(axios)正确用法结合vue-axios使用,vue-axios是将axios集成到Vue.js的小包装器,可以像插件一样进行安装,具体用法是:安装......