php小编西瓜在本文中将探讨一个关于Golang语言的问题:是否存在结构的扩展运算符。Golang作为一种现代化的编程语言,拥有许多强大的特性和功能,但是在一些特定的场景下,开发人员可能会遇到需要对结构进行扩展的需求。本文将详细介绍Golang中结构扩展的相关知识,并给出解决方案。如果你对Golang的结构扩展运算符感兴趣,那么请继续阅读本文。
问题内容
具有以下结构,其中 postinput 是 createpost 函数的参数。
- type postinput struct { title string content string}type postinputwithtime struct { title string content string createdat time updatedat time}
登录后复制
但不希望 createdat 和 updatedat 暴露给用户,所以我将其添加到函数中,如下所示。
- func createpost(input postinput) { updatedinput = postinputwithtime{ title: input.title content: input.content createdat: time.now() updatedat: time.now() } db.insertone(updatedinput)}
登录后复制
它工作正常,但很好奇是否有更优雅的方法来做到这一点?我知道可以将结构嵌入到另一个结构上,但不能嵌入到根层上(如 javascript 扩展运算符)。
立即学习“go语言免费学习笔记(深入)”;
- // something like thistype PostInputWithTime struct { ...PostInput CreatedAt UpdatedAt}
登录后复制
解决方法
是否有像 javascript 扩展运算符 […] 一样的 go[…] 结构 […] 扩展运算符?
没有。
(您必须使用嵌入、复制值或实现一些基于反射的魔法,但不,没有传播。)
以上就是golang 结构是否有扩展运算符的详细内容,更多请关注【创想鸟】其它相关文章!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。