【技术实现步骤摘要】
结构体赋值方法、赋值器及计算机可读存储介质
[0001]本专利技术涉及go语言编程领域,尤其涉及一种结构体赋值方法、赋值器及计算机可读存储介质。
技术介绍
[0002]在Go语言(Go是一种为高并发而生的高级编程语言)里,因为官方标准库里没有针对结构体赋值(struct to struct)提供开箱即用package,而在当前互联网行业中常用开源项目copier对结构体进行赋值,但它所具备的主要功能没有包含集合给结构体赋值(map to struct),因此现有技术无法满足用户在面对更多应用场景时灵活赋值的需求。
技术实现思路
[0003]本专利技术的主要目的在于提供一种结构体赋值方法,旨在解决现有技术无法满足用户在面对更多应用场景时灵活赋值的需求的问题。
[0004]为实现上述目的,本专利技术提供一种结构体赋值方法,所述结构体赋值方法包括以下步骤:获取赋值变量的reflect.Value对象,并根据所述赋值变量的reflect.Value对象判断所述赋值变量的数据类型是否为map类、struct类或 ...
【技术保护点】
【技术特征摘要】
1.一种结构体赋值方法,其特征在于,所述结构体赋值方法包括以下步骤:获取赋值变量的reflect.Value对象,并根据所述赋值变量的reflect.Value对象判断所述赋值变量的数据类型是否为map类、struct类或者指向struct的指针中的任意一种;若所述赋值变量的数据类型为map类、struct类或者指向struct的指针中的任意一种,则通过被赋值变量的指针获取被赋值变量的reflect.Value对象;根据所述被赋值变量的reflect.Value对象判断被赋值变量的数据类型是否为struct类,若所述被赋值变量的数据类型是struct类,则获取所述被赋值变量的Field以及Field对应的值;获取所述赋值变量的字段及字段对应的值,并遍历所述赋值变量中所有字段,将赋值变量中字段对应的值,赋值给被赋值变量中与所述赋值变量中字段描述相同的Field所对应的值;遍历完成后,则赋值变量给被赋值变量赋值完成。2.如权利要求1所述的结构体赋值方法,其特征在于,在所述遍历所述赋值变量中所有字段的步骤之前,所述结构体赋值方法还包括:基于用户操作构建赋值变量中的字段与被赋值变量中的Field之间的字段映射关系表。3.如权利要求2所述的结构体赋值方法,其特征在于,所述遍历所述赋值变量中所有字段,将赋值变量中字段对应的值,赋值给被赋值变量中与所述赋值变量中字段描述相同的Field所对应的值的步骤包括:获取所述赋值变量中任意单个字段并进行预设的字段描述判断,所述字段描述判断为:判断被赋值变量中是否存在与所述单个字段描述相同的Field,若存在,则获取被赋值变量中与所述单个字段描述相同的Field对应的值;判断所述单个字段对应的值的数据类型是否与被赋值变量中与所述单个字段描述相同的Field所对应的值的数据类型相同;若数据类型相同,则将所述单个字段对应的值赋值给被赋值变量中与所述单个字段描述相同的Field所对应的值;当所述赋值变量所有单个字段都进行了字段描述判断后,则遍历完成。4.如权利要求3所述的结构体赋值方法,其特征在于,所述判断被赋值变量中是否存在与所述单个字段描述相同的Field的步骤之后,包括:若不存在,则根据所述字段映射关系表,获取与所述单个字段成映射关系的Field,判定被赋值变量中与所述单个字段成映射关系的Field与所述单个字段描述相同。5.如权利要求4所述的结构体赋值方法,其特征在于,所述获...
【专利技术属性】
技术研发人员:谭洪斌,
申请(专利权)人:深圳市明源云采购科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。