GoLang 如何动态给结构体添加字段

GoLang 如何动态给结构体添加字段,第1张

insert into #ForMonth exec(@Sql)使用这样的SQL语句,首先是表#ForMonth必须存在,如果不存在这个表,要用select * into #ForMonth from 表名

你可以这样写试一下(只后面几句,前面的不变)

SET @Sql='select * into #ForMonth from #TotalSalesForMonth pivot (sum(total) for monthN in ('+@str+') ) as pvt '

drop table #ForMonth --删除临时表exec(@Sql)

go和其他语言一样,可以申明新的“结构体”,struct可以作为其他类型属性字段的容器,定义方式如下:

type 关键字申明 person 为 struct 类型,person包含 name 属性和 age 属性,对应的类型为 string 和 int 。我们看看如何使用struct:

除了上面使用的方式使用 struct ,还有三种方式可以使用申明struct类型

完整是使用struct 例子

当我们创建结构体时,字段可以只有类型,而没有字段名。这样的字段称为匿名字段(Anonymous Field)。习惯上匿名字段叫内嵌,具名字段叫组合

上面我们申明了两个结构体 Student 和 Person ,其中 Student 组合了 Person 字段,那么 Student 包含了 Person 中的所有字段

从上面的例子可以看出来,struct 不仅可以将struct作为匿名字段,自定义类型、内置类型都可以作为匿名字段,也可以进行相应的函数 *** 作。

这里我们有个问题,Person上有一个name属性,如果Student上也有一个name属性,那么我们怎么办呢?其实在go里面,最外层的属性具有有限的访问权限,当你通过Student.name访问的时候是访问Student上的属性。同理,我们可以通过Student.Person访问Person上的属性,如:

如果结构体的全部成员都是可以比较的,那么结构体也是可以比较的,那样的话两个结构体将可以使用 == 或 != 运算符进行比较,但不支持 >或 <。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/7923625.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存