golang---利用反射机制对结构体进行循环赋值
熟悉C语言的朋友都知道,C语言的指针操作某些方面是很方便的。 如假设你知道内存中有一个连续100个字节的区域,或者你有一个连续100个字节的字节数组,你需要用其对一个已经定义好的结构体进行赋值,在c语言你可以简单地将内存数据中的头地址,或者字节数组的头地址赋值给结构体指针就行。 但在go语言中该如何实现? 假设你有如下的golng结构体: 这个结构体的数据可以对应一个byte[100]字节组。 例如 DTemp_Des 字段的低位时b[1],高位是b[2] Temp_Des 的低位时b[3],高位b[4] 如此类推 但你对这个结构体赋值的时候你不能笨笨地一个个赋值,如果字段少还可以,字段多比如100个字段,那你会疯掉 笨的做法: nm:=&NM820_SysVal{} nm.DTemp_Des=uint16(b[1])+uint16(b[2]<<8) ........ 一个个赋值 详细代码如下 注意: 1.开头要引入reflect包 2.变量nm为结构体指针 3.数组b用于结构体赋值的字节数组 来源: CSDN 作者: 鱼鱼AA 链接: https://blog.csdn.net/qq317808023/article/details/50192897